Serveur HTTP/2
Sers HTTP/2 (h2) aux côtés de HTTP/1.1 et WebSocket sur un seul port TLS via TsgcWebSocketHTTPServer. La négociation ALPN, HPACK et le multiplexage de streams sont intégrés.
Sers HTTP/2 (h2) aux côtés de HTTP/1.1 et WebSocket sur un seul port TLS via TsgcWebSocketHTTPServer. La négociation ALPN, HPACK et le multiplexage de streams sont intégrés.
Le même TsgcWebSocketHTTPServer utilisé pour WebSocket et HTTP/1.1 sert aussi HTTP/2 sur TLS — bascule Specifications.HTTP2, ALPN s'occupe du reste.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Sur une instance TsgcWebSocketHTTPServer, active TLS et bascule Specifications.HTTP2 — la négociation ALPN h2 gère automatiquement 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';
// 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 avec HTTP/2 activé — partage un seul endpoint TLS entre HTTP/1.1, HTTP/2 et WebSocket.
Pendant le handshake TLS, le serveur annonce à la fois http/1.1 et h2. Le client choisit le protocole ; le serveur dispatche en conséquence — aucune socket d'écoute séparée nécessaire.
Les clients WebSocket continuent à faire l'upgrade via le chemin HTTP/1.1. La RFC 8441 (bootstrap WebSocket sur HTTP/2) est prise en charge via Specifications.RFC8441.
Encodeur HPACK intégré pour les en-têtes de réponse et un cœur de multiplexage qui dispatche chaque requête sur son propre stream-id, en respectant les indications de priorité.
Le server push (PUSH_PROMISE) est pris en charge mais désormais déprécié — les clients modernes l'ignorent ; envisage plutôt 103 Early Hints ou HTTP/3 pour les indications.
Règle SSLOptions.IOHandler sur iohOpenSSL (multiplateforme) ou iohSChannel (Windows). HTTP/2 requiert TLS 1.2+ selon le déploiement RFC 7540 / 9113.
Chaque connexion HTTP/2 expose le nombre de streams, les estimations RTT, le total des octets in/out et les paramètres de la trame SETTINGS négociés via OnHTTP2Settings.
Lien direct vers la référence du composant, récupère le projet de démo prêt à exécuter et télécharge l’essai.
| Aide en ligne — TsgcWebSocketHTTPServer Référence complète des propriétés, méthodes et événements de ce composant. | Ouvrir | |
| Projet de démo — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Projet d’exemple prêt à exécuter. Livré dans le paquet sgcWebSockets — télécharge l’essai ci-dessous. | Ouvrir | |
| Document technique (PDF) Features, quick start, code samples for Delphi & C++ Builder and primary-source references — this component only. | Ouvrir | |
| Manuel utilisateur (PDF) Manuel exhaustif couvrant chaque composant de la bibliothèque. | Ouvrir |