HTTP/2-Protokoll

Nativer HTTP/2-Client und -Server für Delphi und C++Builder. Binäres Framing, Stream-Multiplexing, HPACK-Header-Komprimierung und ALPN-Aushandlung — ohne Abhängigkeit von IIS, Apache oder Indy.

Wählen Sie die Seite, die Sie benötigen

Zwei produktionsreife Komponenten implementieren das vollständige HTTP/2-Wire-Protokoll (RFC 9113). Nutzen Sie den Client, um HTTP/2-APIs zu konsumieren, oder den Server, um sie zu veröffentlichen — oder beides in derselben Anwendung.

TsgcHTTP2Client

Nativer HTTP/2-Client — gemultiplexte GET/POST/PUT/DELETE-Anfragen über eine einzige TLS-Verbindung, HPACK-komprimierte Header, ALPN-h2-Upgrade oder Prior-Knowledge-h2c, Verarbeitung von Server-Push sowie Bearer-, Basic- und NTLM-Authentifizierung.

HTTP/2-Client öffnen →

TsgcWebSocketHTTPServer

Nativer HTTP/2-Server — derselbe WebSocket-HTTP-Server bedient HTTP/1.1, HTTP/2 (h2) und WebSocket auf einem einzigen TLS-Port. ALPN-Aushandlung, Stream-Multiplexing, HPACK-Antworten und optionales WebSocket-über-HTTP/2-Bootstrapping nach RFC 8441.

HTTP/2-Server öffnen →

HTTP/2 in sgcWebSockets

Eine erstklassige Implementierung des HTTP/2-Framings, integriert in den Client und in den WebSocket-HTTP-Server.

Komponenten

TsgcHTTP2Client
TsgcWebSocketHTTPServer

Plattformen

Windows, macOS, Linux, iOS, Android

Editionen

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

Was HTTP/2 mitbringt

Alle Vorteile von HTTP/2 gegenüber HTTP/1.1 — in nativem Delphi/C++Builder-Code, ohne einen separaten Webserver starten zu müssen.

Binäres Framing

Anfragen und Antworten werden in binäre Frames aufgeteilt, die von einem deterministischen Zustandsautomaten geparst werden. Kein zeilenbasiertes Textparsing und keine HTTP/1.1-Mehrdeutigkeit mehr.

Stream-Multiplexing

Dutzende laufender Anfragen teilen sich eine einzige TCP/TLS-Verbindung — kein Head-of-Line-Blocking auf der HTTP-Ebene und keine zusätzlichen Sockets pro Anfrage.

HPACK-Header-Komprimierung

Eingebauter HPACK-Encoder/-Decoder (RFC 7541). Wiederholte Cookies, Auth-Tokens und Content-Type-Header kosten nach der ersten Anfrage nahezu null Bytes.

ALPN-Aushandlung

Während des TLS-Handshakes kündigt die Gegenstelle h2 und http/1.1 an; der ausgehandelte ALPN-Wert wählt das Protokoll ohne verschwendete Round-Trips.

Prior-Knowledge h2c

Für vertrauenswürdige interne Verbindungen und Service-Mesh-Sidecars können beide Seiten ALPN überspringen und HTTP/2 über Klartext via HTTP2_PriorKnowledge starten.

Server-Push

Der Server kann proaktiv PUSH_PROMISE-Antworten senden; der Client stellt sie über OnHTTP2StreamData zum Caching bereit. Hinweis: Im öffentlichen Web veraltet, intern aber weiterhin nützlich.

Stream-Priorisierung

Prioritäts- und Abhängigkeitshinweise pro Stream erlauben es kritischen Antworten (Auth, Navigation, JSON-RPC-Ergebnisse), Massenübertragungen auf derselben Verbindung zu überholen.

Flusssteuerung

WINDOW_UPDATE-Flusssteuerung pro Stream und pro Verbindung verhindert, dass eine große Antwort kleinere aushungert — konfigurierbar über SETTINGS-Frames.

TLS über OpenSSL oder SChannel

Setzen Sie TLSOptions.IOHandler auf iohSChannel für Windows-Kernel-TLS (ohne DLLs) oder auf iohOpenSSL für vollständige plattformübergreifende 1.2/1.3-Unterstützung.

Wo HTTP/2 glänzt

Drop-in-Szenarien, in denen sich die Multiplexing- und HPACK-Einsparungen von HTTP/2 sofort auszahlen.

Apple Push Notifications

Apples APNs-Provider-API erfordert HTTP/2. TsgcHTTP2Client steuert die Komponente Apple Push Ende-zu-Ende mit Token-basierter Authentifizierung.

Firebase Cloud Messaging

Googles FCM-HTTP-v1-API läuft über HTTP/2. Dieselbe Komponente bedient FCM mit Service-Account-JWT-Erzeugung.

Moderne REST- & JSON-APIs

Die meisten Cloud-APIs (Stripe, GitHub, Cloudflare, Google, Azure…) sprechen standardmäßig HTTP/2 — gemultiplexte Clients reduzieren die Latenz bei parallelen Aufrufen.

Service-zu-Service-Verkehr

Interne Microservices hinter einem Sidecar-Mesh nutzen HTTP/2 mit Prior-Knowledge (h2c), um Hunderte von RPC-Streams über einen Socket zu multiplexen.

WebSocket + HTTP/2 auf einem Port

TsgcWebSocketHTTPServer bedient HTTP/1.1, HTTP/2 und WebSocket auf einem einzigen TLS-Endpunkt — ALPN leitet jede Verbindung automatisch weiter.

RFC 8441 WebSocket über HTTP/2

Für Clients, die WebSocket-Frames lieber in HTTP/2-Streams tunneln, aktivieren Sie Specifications.RFC8441 auf dem Server.

Client & Server in wenigen Zeilen

Komponente platzieren, TLS setzen, los geht's. ALPN handelt h2 während des Handshakes für Sie aus.

uses
  sgcHTTP, sgcHTTP2;

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

  // Benutzerdefinierte Header hinzufügen (durch HPACK komprimiert)
  HTTP2.Request.CustomHeaders.Add('authorization: Bearer eyJ...');

  // GET über HTTP/2 (ALPN handelt h2 aus)
  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 und WebSocket auf demselben TLS-Port
  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");

Spezifikationen & Referenzen

Maßgebliche Quellen für die Protokolle, die diese Komponenten implementieren.

Dokumentation & Demos

Direkte Links zu den Komponentenseiten, zur Online-Hilfe und zum lauffähigen Demoprojekt, das in der Testversion enthalten ist.

HTTP/2-Client — TsgcHTTP2Client Komponentenseite: Funktionen, Codebeispiele und TLS-Optionen für den Client.
HTTP/2-Server — TsgcWebSocketHTTPServer Komponentenseite: Wie Sie HTTP/2 neben HTTP/1.1 und WebSocket auf einem TLS-Port aktivieren.
Online-Hilfe — HTTP/2 Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen der HTTP/2-Komponenten.
Demoprojekt — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Lauffähiges Beispielprojekt. Im sgcWebSockets-Paket enthalten — laden Sie unten die Testversion herunter.
Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek.

Bereit, HTTP/2 einzusetzen?

Laden Sie die kostenlose Testversion herunter und ergänzen Sie Ihre Delphi-Anwendungen um gemultiplexten HTTP/2-Client- und -Server-Verkehr.