HTTP/2 Server
Obsługuj HTTP/2 (h2) obok HTTP/1.1 i WebSocket na jednym porcie TLS za pomocą TsgcWebSocketHTTPServer. Negocjacja ALPN, HPACK i multipleksowanie strumieni są wbudowane.
Obsługuj HTTP/2 (h2) obok HTTP/1.1 i WebSocket na jednym porcie TLS za pomocą TsgcWebSocketHTTPServer. Negocjacja ALPN, HPACK i multipleksowanie strumieni są wbudowane.
Ten sam TsgcWebSocketHTTPServer używany dla WebSocket i HTTP/1.1 obsługuje też HTTP/2 przez TLS — włącz Specifications.HTTP2, a ALPN zajmie się resztą.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Na instancji TsgcWebSocketHTTPServer włącz TLS i przełącz Specifications.HTTP2 — negocjacja ALPN h2 obsłuży ulepszenie automatycznie.
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 z włączonym HTTP/2 — dziel jeden punkt końcowy TLS między HTTP/1.1, HTTP/2 i WebSocket.
Podczas uścisku dłoni TLS serwer ogłasza zarówno http/1.1, jak i h2. Klient wybiera protokół; serwer kieruje ruchem odpowiednio — nie jest potrzebne osobne gniazdo nasłuchujące.
Klienci WebSocket nadal wykonują ulepszenie przez ścieżkę HTTP/1.1. RFC 8441 (Bootstrapping WebSockets with HTTP/2) jest obsługiwany przez Specifications.RFC8441.
Wbudowany koder HPACK dla nagłówków odpowiedzi oraz rdzeń multipleksowania strumieni, który kieruje każde żądanie na własny stream-id, respektując wskazówki priorytetu.
Server push (PUSH_PROMISE) jest obsługiwany, ale jest już przestarzały — nowoczesne klienty go ignorują; zamiast tego rozważ 103 Early Hints lub HTTP/3.
Ustaw SSLOptions.IOHandler na iohOpenSSL (wieloplatformowy) lub iohSChannel (Windows). HTTP/2 wymaga TLS 1.2+ zgodnie z wdrożeniem RFC 7540 / 9113.
Każde połączenie HTTP/2 udostępnia liczbę strumieni, szacunki RTT, łączne bajty przesłane/odebrane i parametry wynegocjowanej ramki SETTINGS przez OnHTTP2Settings.
Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.
| Pomoc online — TsgcWebSocketHTTPServer Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu. | Otwórz | |
| Projekt demonstracyjny — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej. | Otwórz | |
| Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł pierwotnych — tylko ten komponent. | Otwórz | |
| Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki. | Otwórz |