HTTP/2 Server
Sirva HTTP/2 (h2) ao lado de HTTP/1.1 e WebSocket em uma única porta TLS via TsgcWebSocketHTTPServer. Negociação ALPN, HPACK e multiplexação de streams já estão integrados.
Sirva HTTP/2 (h2) ao lado de HTTP/1.1 e WebSocket em uma única porta TLS via TsgcWebSocketHTTPServer. Negociação ALPN, HPACK e multiplexação de streams já estão integrados.
O mesmo TsgcWebSocketHTTPServer usado para WebSocket e HTTP/1.1 também serve HTTP/2 sobre TLS — habilite Specifications.HTTP2 e o ALPN cuida do resto.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Em uma instância de TsgcWebSocketHTTPServer, habilite TLS e ative Specifications.HTTP2 — a negociação ALPN h2 faz o upgrade automaticamente.
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 com HTTP/2 habilitado — compartilhe um único endpoint TLS entre HTTP/1.1, HTTP/2 e WebSocket.
Durante o handshake TLS, o servidor anuncia tanto http/1.1 quanto h2. O cliente escolhe o protocolo; o servidor despacha de acordo — nenhum socket de escuta separado é necessário.
Os clientes WebSocket ainda fazem upgrade pelo caminho HTTP/1.1. A RFC 8441 (Bootstrapping WebSockets with HTTP/2) é suportada via Specifications.RFC8441.
Codificador HPACK integrado para cabeçalhos de resposta e um núcleo de multiplexação de streams que despacha cada requisição em seu próprio stream-id, respeitando dicas de prioridade.
O server push (PUSH_PROMISE) é suportado, mas agora está obsoleto — clientes modernos o ignoram; considere usar 103 Early Hints ou HTTP/3 como alternativa.
Defina SSLOptions.IOHandler como iohOpenSSL (multiplataforma) ou iohSChannel (Windows). O HTTP/2 requer TLS 1.2+ conforme a implantação RFC 7540 / 9113.
Cada conexão HTTP/2 expõe contagem de streams, estimativas de RTT, total de bytes de entrada/saída e os parâmetros do frame SETTINGS negociado via OnHTTP2Settings.
Acesse a referência do componente, pegue o projeto demo pronto para executar e baixe a versão de avaliação.
| Ajuda online — TsgcWebSocketHTTPServer Referência completa de propriedades, métodos e eventos deste componente. | Abrir | |
| Projeto demo — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo. | Abrir | |
| Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente deste componente. | Abrir | |
| Manual do usuário (PDF) Manual completo cobrindo todos os componentes da biblioteca. | Abrir |