sgcHTTP HTTP-server, HTTP/2 en gRPC, native in Delphi. Ook Google Cloud.

Een HTTP-server en vijf clientcomponenten. TsgcHTTPServer publiceert HTTP-endpoints en statische bestanden vanuit je eigen applicatie. TsgcHTTP2Client spreekt HTTP/2 met gemultiplexte streams over één TLS-verbinding en HPACK-headercompressie. TsgcGRPCClient is een gRPC-client die erop voortbouwt, voor unary en streaming Protocol Buffers-aanroepen. Drie extra klassen bereiken Google Cloud via gewone HTTPS: Pub/Sub, Calendar en Firebase Cloud Messaging.

Een zelfstandig pakket van sgcWebSockets, met de Core-runtime meegeleverd. Bekijk de prijzen →
  • HTTP-server
  • HTTP/2
  • gRPC
  • Google Cloud
  • HPACK & ALPN
  • Delphi 7 tot 13
  • C++ Builder
  • 3Palettecomponenten: de HTTP-server, de HTTP/2-client en de gRPC-client
  • 5Clientklassen in totaal
  • 3Google Cloud-diensten: Pub/Sub, Calendar en FCM
  • 1Zelfstandig installatieprogramma, Core-runtime meegeleverd
  • 100%Broncode inbegrepen bij elke licentie
Zie het draaien

Zie sgcHTTP in twee minuten.

Een ingesproken quickstart met ondertitels: een HTTP/2-client die veel requests over één verbinding verstuurt, gevolgd door een gRPC-aanroep op datzelfde transport, allemaal vanuit Delphi. Er wordt niets gedownload tot je op afspelen drukt.

sgcHTTP-quickstart

Roep een HTTP/2-endpoint aan en doe een gRPC-aanroep, vanuit Delphi.

  1. Maak de HTTP/2-client aanMaak een TsgcHTTP2Client aan, verwerk OnHTTP2Response en roep Get aan. Het h2-protocol wordt tijdens de TLS-handshake via ALPN onderhandeld.
  2. Veel requests, één verbindingRequests delen één TCP-verbinding als onafhankelijke streams, dus één trage respons houdt de andere niet op.
  3. gRPC op hetzelfde transportWijs de HTTP/2-client toe aan de gRPC-client en roep een methode aan via service en naam. Berichten reizen als Protocol Buffers met lengteprefix.
  4. Vier RPC-patronenUnary, server streaming, client streaming en bidirectionele streaming, elk met een eigen methode op TsgcGRPCClient.
Twee palettecomponenten

Een HTTP/2-client, met gRPC erbovenop.

Beide componenten zijn gedeclareerd in de sgcHTTP unit, en TsgcGRPCClient heeft via de eigenschap Client zijn eigen HTTP/2-verbinding.

De HTTP/2-client in de sgcHTTP-quickstart: de Delphi-code naast zes requests die over één socket onderweg zijn

Gemultiplexte streams over één TLS-verbinding

TsgcHTTP2Client spreekt HTTP/2 (RFC 9113): meerdere requests delen één TCP-verbinding als onafhankelijke streams. Headers worden gecomprimeerd met HPACK, en h2 wordt tijdens de TLS-handshake via ALPN onderhandeld. Elke methode wordt gedekt: Get, Post, Put, Patch, Delete en Options, elk met een synchrone aanroep en een Async-tegenhanger.

gRPC in de sgcHTTP-quickstart: een TsgcGRPCClient die een TsgcHTTP2Client als transport gebruikt, met de vier RPC-patronen op een rij

Unary en streaming RPC op de HTTP/2-client

TsgcGRPCClient erft de gemultiplexte verbinding en voegt er het gRPC-wireformaat aan toe. Call en CallAsync dekken unary RPC's, ServerStreamingCall verwerkt een stroom van responsen op één request, en OpenClientStream en OpenBidiStream dekken client streaming en bidirectionele streaming. RetryPolicy, Interceptors en ServiceConfig voegen retrygedrag en overkoepelende logica toe zonder de aanroepplekken aan te raken.

Eén server, vijf clientklassen

Twee afhankelijkheden, geen vijf.

De vijf klassen laten zich netjes indelen naar wat ze eronder nodig hebben. HTTP/2 en gRPC hebben ALPN nodig, en dat betekent sgcCustomIndy. Google Cloud heeft niets nodig buiten HTTPS en een serviceaccount, wat de meegeleverde Core-runtime al biedt. De HTTP-server komt uit diezelfde runtime.

HTTP-server

TsgcHTTPServer publiceert HTTP-endpoints vanuit je eigen applicatie. Stel Port in, verwerk OnCommandGet, zet Active aan, en elk verzoek bereikt je code. OnCommandOther dekt verbs zoals PUT en DELETE. Wordt meegeleverd met de Core-runtime.

Statische bestanden en uploads

Wijs DocumentRoot naar een map en de server levert er statische bestanden uit. HTTPUploadFiles slaat geüploade bestanden op schijf op, MaxRequestBodySize begrenst de grootte van request bodies, en HTTPCompression en KeepAlive houden responses klein en verbindingen open.

Klaar voor productie

SSL en SSLOptions schakelen TLS in, Authentication en OnAuthentication beschermen endpoints, SessionState houdt sessies bij, en ThreadPool en MaxConnections bepalen hoe het schaalt. Dezelfde engine als de WebSocket-server, zonder het WebSocket-deel.

HTTP/2

TsgcHTTP2Client multiplext onafhankelijke streams over één TLS-verbinding, comprimeert headers met HPACK en onderhandelt over h2 via ALPN. Connect, Get, Post, Put, Patch, Delete en Options, synchroon of Async.

gRPC

TsgcGRPCClient draait op de HTTP/2-client: Protocol Buffers-berichten met lengteprefix over HTTP/2-streams, met unary, server streaming, client streaming en bidirectionele RPC's, plus retrybeleid en interceptors.

Google Cloud, gewone HTTPS

TsgcHTTPGoogleCloud_PubSub_Client, TsgcHTTPGoogleCloud_Calendar_Client en TsgcHTTPGoogleCloud_FCM_Client bereiken Pub/Sub, Calendar en Firebase Cloud Messaging, geauthenticeerd met een Google-serviceaccount. Geen van hen heeft sgcCustomIndy nodig.

Server push en chunked bodies

Events leggen de levenscyclus van de verbinding bloot: OnHTTP2Connect, OnHTTP2Response, OnHTTP2ResponseFragment voor chunked bodies, OnHTTP2PushPromise voor server push, OnHTTP2GoAway en OnHTTP2Disconnect. Niets over de levenscyclus van de stream blijft voor je verborgen.

Eén afhankelijkheid voor twee, geen voor drie

De HTTP/2- en gRPC-clients bouwen voort op sgcCustomIndy, dat hetzelfde platformbereik dekt als sgcWebSockets zelf. De Google Cloud-clients zijn gewone HTTPS en draaien dus overal waar de Core-runtime draait. Delphi 7 tot en met RAD Studio 13, en C++ Builder.

Volledige broncode in de doos

Elke licentie bevat de volledige broncode van de HTTP-server, alle vijf clients en de meegeleverde runtime, zodat je de implementaties op wire-niveau in je eigen debugger kunt doorlopen. Distributie is royaltyvrij.

De code

HTTP-server, HTTP/2 en gRPC, naast elkaar.

Maak het component aan, stel een poort in of wijs het naar een host, koppel het event en ga aan de slag. Dezelfde code compileert in Delphi 7 tot 13 en C++ Builder.

uses
  sgcHTTP;
var
  HTTP2: TsgcHTTP2Client;
begin
  // HTTP/2: multiplexed requests over one TLS connection
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;
uses
  sgcHTTP;
var
  GRPC: TsgcGRPCClient;
begin
  // gRPC: built on the HTTP/2 client, unary and streaming RPC
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;
uses
  sgcHTTP_Server;
var
  Server: TsgcHTTPServer;
begin
  // HTTP server: endpoints and static files
  Server := TsgcHTTPServer.Create(nil);
  Server.Port := 8080;
  Server.DocumentRoot := 'C:\www';
  Server.OnCommandGet := ServerCommandGet;
  Server.Active := True;
end;

procedure TForm1.ServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo);
begin
  if ARequestInfo.Document = '/api/status' then
  begin
    AResponseInfo.ContentType := 'application/json';
    AResponseInfo.ContentText := '{"status":"ok"}';
  end;
end;
  1. Maak het component aanDe clients staan in de unit sgcHTTP, de server in sgcHTTP_Server. TsgcGRPCClient heeft via de eigenschap Client zijn eigen HTTP/2-verbinding.
  2. Wijs hem naar een hostEen https://-host is voldoende. ALPN onderhandelt over h2 tijdens de TLS-handshake en HPACK comprimeert de headers.
  3. Koppel het respons-eventOnHTTP2Response en OnGRPCResponse geven je de gedecodeerde body, met het request en de verbinding erbij.
  4. Verstuur, synchroon of nietElke methode en elke RPC heeft een blokkerende aanroep en een Async-tegenhanger, zodat de UI-thread vrij blijft.

Dezelfde vorm in Object Pascal en in C++ Builder. De volledige functiematrix →

Voordat je koopt

Twee dingen die je eerst moet weten.

Wat sgcHTTP van je vraagt en wat niet. Beide antwoorden zijn kort en staan op deze pagina in plaats van in het kleine lettertje.

Afhankelijkheden per client
class                               needs sgcCustomIndy
TsgcHTTPServer                      no, ships with the Core runtime
TsgcHTTP2Client                     yes, for ALPN
TsgcGRPCClient                      yes, rides on TsgcHTTP2Client
TsgcHTTPGoogleCloud_PubSub_Client   no, plain HTTPS
TsgcHTTPGoogleCloud_Calendar_Client no, plain HTTPS
TsgcHTTPGoogleCloud_FCM_Client      no, plain HTTPS

HTTP/2 negotiates h2 with ALPN during the TLS handshake.
  The standard Indy library that ships with RAD Studio
  has no ALPN support, so both HTTP/2 and gRPC are built
  on sgcCustomIndy instead.

sgcHTTP is zelfstandig

De sgcWebSockets Core-runtime is inbegrepen: de HTTP-server, de HTTP/TLS-clientstack waar elke client zijn requests doorheen stuurt, en de JSON-laag die Google Cloud-responsen decodeert. Eén installatieprogramma, volledige broncode in de doos.

HTTP/2 en gRPC hebben sgcCustomIndy nodig

ALPN-onderhandeling wordt niet ondersteund door de standaard Indy-bibliotheek, dus TsgcHTTP2Client en, bij uitbreiding, TsgcGRPCClient zijn gebouwd op sgcCustomIndy in plaats daarvan. Het is altijd inbegrepen als je sgcHTTP bestelt en de getoonde prijs dekt het al.

Google Cloud heeft alleen HTTPS nodig

De drie Google Cloud-clients authenticeren met de project-id, het client-e-mailadres en de private key van een Google-serviceaccount en roepen de REST-API's aan via de gewone HTTPS-stack van de Core-runtime. Geen native bibliotheek, geen sgcCustomIndy.

Delphi en C++ Builder

sgcHTTP richt zich op Delphi 7 tot en met RAD Studio 13 en C++ Builder. Dezelfde componenten zitten ook in sgcWebSockets Enterprise, dus een bestaande Enterprise- of All-Access-licentie dekt je mogelijk al. Het proefinstallatieprogramma is de All-Access-proefversie van sgcWebSockets, zodat je de HTTP-server en alle vijf clients vandaag nog kunt evalueren.

sgcHTTP implementeert de gepubliceerde HTTP/2-, gRPC- en Google Cloud REST-interfaces in plaats van een SDK van een leverancier te omhullen. Streams, headers, RPC's en pushmeldingen zijn dus volwaardige methoden en events, en dankzij de volledige broncode is niets ertussen een black box.

Onderdeel van sgcWebSockets

Eén pakket van sgcWebSockets, afzonderlijk gelicentieerd.

sgcHTTP bundelt de sgcWebSockets Core-runtime waarop het gebouwd is, en de sgcCustomIndy-add-on die HTTP/2 en gRPC nodig hebben is altijd inbegrepen. Elke licentie bevat de volledige broncode en royaltyvrije distributie.

Single

1 ontwikkelaarslicentie. Gebruik op één machine tegelijk.

€398

Team

2 ontwikkelaarslicenties. Gebruik op twee machines tegelijk.

€648

Site

Onbeperkt aantal ontwikkelaars. Alle bedrijfsmachines.

€1,048

HTTP/2-, gRPC- en Google Cloud-clientcomponenten voor Delphi en C++ Builder, met de sgcWebSockets Core-runtime meegeleverd. Al op sgcWebSockets Enterprise? Dezelfde componenten zitten daar ook in.

Bekijk prijzen en licenties
Referenties

Wat ontwikkelaars zeggen

Vertrouwd door Delphi-, C++ Builder-, Lazarus- en .NET-ontwikkelaars over de hele wereld.

Jullie sgcWebSockets-bibliotheek is erg handig en eenvoudig op te zetten. Ga zo door!
Simone Moretti Delphi-ontwikkelaar
sgcWebSockets is geweldig en jullie support is de beste!
Christian Meyer Oprichter & CTO
Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.
Mark Steinfeld CTO

Modern HTTP, gRPC en Google Cloud vanuit native code.

Een HTTP-server, gemultiplexte HTTP/2, streaming gRPC en drie Google Cloud-clients, met de sgcWebSockets Core-runtime meegeleverd en volledige broncode in de doos.

Meer van eSeGeCe

Andere producten van eSeGeCe

sgcHTTP deelt conventies met de andere componentbibliotheken van eSeGeCe voor Delphi, C++ Builder en .NET. Ze worden met volledige broncode geleverd en zijn royaltyvrij te distribueren.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI en 30+ API-integraties voor Delphi, C++ Builder, Lazarus en .NET. De Enterprise-editie bevat ook gRPC.

sgcREST

REST-server-, OpenAPI-server- en OpenAPI-clientcomponenten voor Delphi en C++ Builder. Publiceer REST-API's vanuit een OpenAPI 3.x-contract, of gebruik elke API die met OpenAPI is beschreven.

sgcAuth

OAuth2-client, JWT-client en WebAuthn-ondersteuning voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcMQ

Clientcomponenten voor MQTT, AMQP 0.9.1 en 1.0, Apache Kafka en STOMP voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcSocial

Telegram- en WhatsApp Business-clientcomponenten voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcAI

AI-, LLM- en MCP-componenten voor Delphi en C++ Builder. Zeven LLM-providers achter één component, plus MCP, embeddings en spraak.

sgcHTML

HTML- en UI-componenten aan de serverkant op Bootstrap 5 en htmx voor Delphi, C++ Builder en .NET.

sgcQUIC

Pure QUIC-transport en een HTTP/3-client en -server, met WebTransport. Een add-on voor sgcWebSockets Enterprise.

sgcOpenAPI

OpenAPI 3.x-parser, native Pascal-SDK-generator, OpenAPI-servercomponent en 1.195+ kant-en-klare cloud-SDK's.

sgcSign

XAdES, PAdES, CAdES en ASiC voor documenten, Authenticode, ClickOnce, NuGet en VSIX voor code.

sgcPDF

PDF-bestanden maken, bewerken, bekijken, ondertekenen, redigeren en valideren in pure Object Pascal, zonder DLL. Wordt los gelicentieerd.

sgcBiometrics

Windows Hello, vingerafdruksensoren en het Windows Biometric Framework voor Delphi en C++ Builder.

sgcIndy

Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2 voor Delphi 7 tot en met 13.

Laatste blogberichten

Bekijk alle berichten →

Je bekijkt nu de HTTP-server, HTTP/2 & gRPC-weergave van eSeGeCe.

Toon me een andere kant →
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid