HTTP/2-protocol

Native HTTP/2-client en -server voor Delphi en C++Builder. Binaire framing, stream-multiplexing, HPACK header-compressie en ALPN-onderhandeling — zonder afhankelijkheid van IIS, Apache of Indy.

Kies de zijde die u nodig hebt

Twee productieklare componenten implementeren het volledige HTTP/2 (RFC 9113) wire-protocol. Gebruik de client om HTTP/2-API's te consumeren, gebruik de server om ze te publiceren — of beide binnen dezelfde toepassing.

TsgcHTTP2Client

Native HTTP/2-client — gemultiplexte GET/POST/PUT/DELETE over één TLS-verbinding, HPACK-gecomprimeerde headers, ALPN h2-upgrade of prior-knowledge h2c, afhandeling van server push en bearer-, basic- of NTLM-authenticatie.

Open HTTP/2-client →

TsgcWebSocketHTTPServer

Native HTTP/2-server — dezelfde WebSocket HTTP-server bedient HTTP/1.1, HTTP/2 (h2) en WebSocket op één TLS-poort. ALPN-onderhandeling, stream-multiplexing, HPACK-responses en optionele RFC 8441 WebSocket-over-HTTP/2-bootstrap.

Open HTTP/2-server →

HTTP/2 in sgcWebSockets

Een eersteklas implementatie van HTTP/2-framing, geïntegreerd in zowel de client als de WebSocket HTTP-server.

Standaard

HTTP/2 (RFC 9113)

Componenten

TsgcHTTP2Client
TsgcWebSocketHTTPServer

Platforms

Windows, macOS, Linux, iOS, Android

Edities

Client: Standard / Pro / Enterprise
Server: Pro / Enterprise

Wat HTTP/2 oplevert

Alle voordelen van HTTP/2 boven HTTP/1.1 — in native Delphi/C++Builder-code, zonder een aparte webserver te hoeven starten.

Binaire framing

Requests en responses worden opgesplitst in binaire frames, geparsed door een deterministische state machine. Geen tekstregel-parsing of HTTP/1.1-ambiguïteit meer.

Stream-multiplexing

Tientallen lopende requests delen één TCP/TLS-verbinding — geen head-of-line blocking op de HTTP-laag, geen extra sockets per request.

HPACK header-compressie

Ingebouwde HPACK-encoder/decoder (RFC 7541). Herhaalde cookies, auth-tokens en content-type-headers kosten bijna nul bytes na de eerste request.

ALPN-onderhandeling

Tijdens de TLS-handshake adverteert de peer h2 en http/1.1; de onderhandelde ALPN-waarde selecteert het protocol zonder verspilde round-trips.

Prior-knowledge h2c

Voor vertrouwde interne verbindingen en service-mesh-sidecars kunnen beide zijden ALPN overslaan en HTTP/2 over plaintext starten via HTTP2_PriorKnowledge.

Server push

De server kan proactief PUSH_PROMISE-responses sturen; de client geeft ze door via OnHTTP2StreamData voor caching. Let op: afgeschaft op het publieke web, intern nog steeds nuttig.

Stream-prioritering

Prioriteit- en dependency-hints per stream laten kritieke responses (auth, navigatie, JSON-RPC-resultaten) bulkoverdrachten op dezelfde verbinding inhalen.

Flow control

WINDOW_UPDATE flow control per stream en per verbinding voorkomt dat één grote response kleinere uithongert — instelbaar via SETTINGS-frames.

TLS via OpenSSL of SChannel

Zet TLSOptions.IOHandler op iohSChannel voor Windows kernel-TLS (zonder DLL's) of iohOpenSSL voor volledige cross-platform-ondersteuning van 1.2/1.3.

Waar HTTP/2 uitblinkt

Drop-in-scenario's waarin de multiplexing- en HPACK-besparingen van HTTP/2 zich onmiddellijk terugbetalen.

Apple Push Notifications

De APNs provider-API van Apple vereist HTTP/2. TsgcHTTP2Client stuurt de Apple Push-component end-to-end aan met token-gebaseerde authenticatie.

Firebase Cloud Messaging

Google's FCM HTTP v1-API draait over HTTP/2. Dezelfde component drijft FCM aan met service-account-JWT-uitgifte.

Moderne REST- & JSON-API's

De meeste cloud-API's (Stripe, GitHub, Cloudflare, Google, Azure…) spreken standaard HTTP/2 — gemultiplexte clients verlagen de latency bij parallelle calls.

Service-naar-service-verkeer

Interne microservices achter een sidecar-mesh gebruiken HTTP/2 prior-knowledge (h2c) om honderden RPC-streams over één socket te multiplexen.

WebSocket + HTTP/2 op één poort

TsgcWebSocketHTTPServer bedient HTTP/1.1, HTTP/2 en WebSocket op één TLS-endpoint — ALPN routeert elke verbinding automatisch.

RFC 8441 WebSocket over HTTP/2

Voor clients die WebSocket-frames liever via HTTP/2-streams tunnelen, schakelt u Specifications.RFC8441 in op de server.

Client & server in enkele regels

Plaats het component, stel TLS in, klaar. ALPN onderhandelt h2 voor u tijdens de handshake.

uses
  sgcHTTP, sgcHTTP2;

var
  HTTP2: TsgcHTTP2Client;
begin
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.TLSOptions.IOHandler := iohSChannel; // of iohOpenSSL
  HTTP2.TLSOptions.Version   := tls1_2;

  // Voeg custom headers toe (gecomprimeerd door HPACK)
  HTTP2.Request.CustomHeaders.Add('authorization: Bearer eyJ...');

  // GET over HTTP/2 (ALPN onderhandelt h2)
  Memo1.Text := HTTP2.Get('https://api.example.com/v1/items');
  ShowMessage(IntToStr(HTTP2.Response.Status));
end;
uses
  sgcWebSocket;

var
  Server: TsgcWebSocketHTTPServer;
begin
  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 443;
  Server.SSL  := True;
  Server.SSLOptions.CertFile := 'cert.pem';
  Server.SSLOptions.KeyFile  := 'key.pem';

  // HTTP/1.1, HTTP/2 en WebSocket op dezelfde TLS-poort
  Server.Specifications.HTTP    := True;
  Server.Specifications.HTTP2   := True;
  Server.Specifications.RFC6455 := True;

  Server.Active := True;
end;
// uses: sgcHTTP, sgcHTTP2
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->TLSOptions->IOHandler = iohSChannel;
HTTP2->Request->CustomHeaders->Add("authorization: Bearer eyJ...");
Memo1->Text = HTTP2->Get("https://api.example.com/v1/items");

Specificaties & referenties

Gezaghebbende bronnen voor de protocollen die deze componenten implementeren.

Documentatie & demo's

Deeplink naar de componentpagina's, online help en het kant-en-klare demoproject dat met de trial wordt meegeleverd.

HTTP/2-client — TsgcHTTP2Client Componentpagina: functies, codevoorbeelden en TLS-opties voor de client.
HTTP/2-server — TsgcWebSocketHTTPServer Componentpagina: hoe u HTTP/2 inschakelt naast HTTP/1.1 en WebSocket op één TLS-poort.
Online help — HTTP/2 Volledige referentie van eigenschappen, methoden en events voor de HTTP/2-componenten.
Demoproject — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Kant-en-klaar voorbeeldproject. Wordt meegeleverd met het sgcWebSockets-pakket — download hieronder de trial.
Gebruikershandleiding (PDF) Uitgebreide handleiding over elk component in de bibliotheek.

Klaar om HTTP/2 te gebruiken?

Download de gratis trial en voeg gemultiplext HTTP/2-client- en serververkeer toe aan uw Delphi-toepassingen.