HTTP/2-server
Bedien HTTP/2 (h2) naast HTTP/1.1 en WebSocket op één TLS-poort via TsgcWebSocketHTTPServer. ALPN-onderhandeling, HPACK en stream-multiplexing zijn ingebouwd.
Bedien HTTP/2 (h2) naast HTTP/1.1 en WebSocket op één TLS-poort via TsgcWebSocketHTTPServer. ALPN-onderhandeling, HPACK en stream-multiplexing zijn ingebouwd.
Dezelfde TsgcWebSocketHTTPServer die voor WebSocket en HTTP/1.1 wordt gebruikt, bedient ook HTTP/2 over TLS — zet Specifications.HTTP2 aan, ALPN doet de rest.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Schakel op een TsgcWebSocketHTTPServer-instantie TLS in en zet Specifications.HTTP2 aan — de ALPN-h2-onderhandeling regelt de 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';
// Sta HTTP/1.1, HTTP/2 en WebSocket toe op dezelfde poort
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 met HTTP/2 ingeschakeld — deel één TLS-endpoint tussen HTTP/1.1, HTTP/2 en WebSocket.
Tijdens de TLS-handshake adverteert de server zowel http/1.1 als h2. De client kiest het protocol; de server dispatcht het bijhorende verzoek — geen aparte luistersocket nodig.
WebSocket-clients upgraden nog steeds via het HTTP/1.1-pad. RFC 8441 (Bootstrapping WebSockets with HTTP/2) wordt ondersteund via Specifications.RFC8441.
Ingebouwde HPACK-encoder voor response-headers en een stream-multiplexing-kern die elk verzoek dispatcht op zijn eigen stream-id, met respect voor priority hints.
Server push (PUSH_PROMISE) wordt ondersteund maar is inmiddels deprecated — moderne clients negeren het; overweeg in plaats daarvan 103 Early Hints of HTTP/3 voor hints.
Stel SSLOptions.IOHandler in op iohOpenSSL (cross-platform) of iohSChannel (Windows). HTTP/2 vereist TLS 1.2+ volgens de RFC 7540-/9113-deployment.
Elke HTTP/2-verbinding maakt het aantal streams, RTT-schattingen, totaal aantal in-/uitgaande bytes en de onderhandelde SETTINGS-frame-parameters beschikbaar via OnHTTP2Settings.
Deep-link naar de componentreferentie, pak het direct uitvoerbare demoproject en download de proefversie.
| Online help — TsgcWebSocketHTTPServer Volledige property-, methode- en event-referentie voor dit component. | Openen | |
| Demoproject — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Direct uitvoerbaar voorbeeldproject. Zit in het sgcWebSockets-package — download de proefversie hieronder. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronreferenties — alleen dit component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding die elk component in de bibliotheek behandelt. | Openen |