HTTP/2 Server
Stelle HTTP/2 (h2) zusammen mit HTTP/1.1 und WebSocket auf einem einzigen TLS-Port über TsgcWebSocketHTTPServer bereit. ALPN-Aushandlung, HPACK und Stream-Multiplexing sind integriert.
Stelle HTTP/2 (h2) zusammen mit HTTP/1.1 und WebSocket auf einem einzigen TLS-Port über TsgcWebSocketHTTPServer bereit. ALPN-Aushandlung, HPACK und Stream-Multiplexing sind integriert.
Derselbe TsgcWebSocketHTTPServer, der für WebSocket und HTTP/1.1 genutzt wird, stellt auch HTTP/2 über TLS bereit — aktiviere Specifications.HTTP2, ALPN erledigt den Rest.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Aktiviere an einer TsgcWebSocketHTTPServer-Instanz TLS und schalte Specifications.HTTP2 ein — die ALPN-h2-Aushandlung übernimmt das Upgrade automatisch.
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';
// Allow HTTP/1.1, HTTP/2 and WebSocket on the same port
Server.Specifications.HTTP := True;
Server.Specifications.HTTP2 := True;
Server.Specifications.RFC6455 := True;
Server.OnCommandGet := procedure(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo)
begin
AResponseInfo.ContentText := 'Hello over HTTP/' + IfThen(ARequestInfo.HTTP2, '2', '1.1');
end;
Server.Active := True;
end;
// uses: sgcWebSocket
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->Port = 443;
Server->SSL = true;
Server->Specifications->HTTP2 = true;
Server->Active = true;
TsgcWebSocketHTTPServer mit aktiviertem HTTP/2 — teile einen TLS-Endpunkt zwischen HTTP/1.1, HTTP/2 und WebSocket.
Während des TLS-Handshakes bietet der Server sowohl http/1.1 als auch h2 an. Der Client wählt das Protokoll; der Server leitet entsprechend weiter — kein separater Listening-Socket nötig.
WebSocket-Clients führen das Upgrade weiterhin über den HTTP/1.1-Pfad durch. RFC 8441 (Bootstrapping WebSockets with HTTP/2) wird über Specifications.RFC8441 unterstützt.
Integrierter HPACK-Encoder für Antwort-Header und ein Stream-Multiplexing-Kern, der jede Anfrage über ihre eigene Stream-ID weiterleitet, wobei Prioritätshinweise berücksichtigt werden.
Server Push (PUSH_PROMISE) wird unterstützt, ist jedoch inzwischen veraltet — moderne Clients ignorieren ihn; ziehe stattdessen 103 Early Hints oder HTTP/3 für Hinweise in Betracht.
Setze SSLOptions.IOHandler auf iohOpenSSL (plattformübergreifend) oder iohSChannel (Windows). HTTP/2 erfordert TLS 1.2+ gemäß der Bereitstellung von RFC 7540 / 9113.
Jede HTTP/2-Verbindung stellt die Stream-Anzahl, RTT-Schätzungen, die gesamten Ein-/Ausgabe-Bytes und die ausgehandelten SETTINGS-Frame-Parameter über OnHTTP2Settings bereit.
Springe direkt zur Komponentenreferenz, lade das einsatzbereite Demo-Projekt herunter und teste die Testversion.
| Online-Hilfe — TsgcWebSocketHTTPServer Vollständige Eigenschaften-, Methoden- und Ereignisreferenz für diese Komponente. | Öffnen | |
| Demo-Projekt — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Einsatzbereites Beispielprojekt. Im sgcWebSockets-Paket enthalten — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Codebeispiele für Delphi & C++ Builder und Primärquellenreferenzen — nur für diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch zu jeder Komponente der Bibliothek. | Öffnen |