Server HTTP/2
Servi HTTP/2 (h2) insieme a HTTP/1.1 e WebSocket su un'unica porta TLS tramite TsgcWebSocketHTTPServer. Negoziazione ALPN, HPACK e multiplexing degli stream sono integrati.
Servi HTTP/2 (h2) insieme a HTTP/1.1 e WebSocket su un'unica porta TLS tramite TsgcWebSocketHTTPServer. Negoziazione ALPN, HPACK e multiplexing degli stream sono integrati.
Lo stesso TsgcWebSocketHTTPServer usato per WebSocket e HTTP/1.1 serve anche HTTP/2 su TLS — attiva Specifications.HTTP2, ad ALPN pensa al resto.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Su un'istanza TsgcWebSocketHTTPServer abilita TLS e attiva Specifications.HTTP2 — la negoziazione ALPN h2 gestisce automaticamente l'upgrade.
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';
// Consenti HTTP/1.1, HTTP/2 e WebSocket sulla stessa porta
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 con HTTP/2 abilitato — condividi un singolo endpoint TLS tra HTTP/1.1, HTTP/2 e WebSocket.
Durante l'handshake TLS il server annuncia sia http/1.1 sia h2. Il client sceglie il protocollo; il server smista di conseguenza — non serve un socket di ascolto separato.
I client WebSocket effettuano comunque l'upgrade tramite il percorso HTTP/1.1. La RFC 8441 (Bootstrapping WebSockets with HTTP/2) è supportata tramite Specifications.RFC8441.
Encoder HPACK integrato per gli header di risposta e un core di multiplexing degli stream che smista ogni richiesta sul proprio stream-id, rispettando gli hint di priorità.
Il server push (PUSH_PROMISE) è supportato ma ora è deprecato — i client moderni lo ignorano; considera invece 103 Early Hints o HTTP/3 per gli hint.
Imposta SSLOptions.IOHandler su iohOpenSSL (multipiattaforma) o iohSChannel (Windows). HTTP/2 richiede TLS 1.2+ secondo il deployment di RFC 7540 / 9113.
Ogni connessione HTTP/2 espone il numero di stream, le stime di RTT, i byte totali in/out e i parametri del frame SETTINGS negoziati tramite OnHTTP2Settings.
Vai al riferimento del componente, scarica il progetto demo pronto all'uso e prova la versione trial.
| Guida online — TsgcWebSocketHTTPServer Riferimento completo di proprietà, metodi ed eventi per questo componente. | Apri | |
| Progetto demo — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto. | Apri | |
| Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente. | Apri | |
| Manuale utente (PDF) Manuale completo che copre tutti i componenti della libreria. | Apri |