HTTP/2 Sunucusu
TsgcWebSocketHTTPServer aracılığıyla tek bir TLS bağlantı noktasında HTTP/1.1 ve WebSocket ile birlikte HTTP/2 (h2) sunun. ALPN anlaşması, HPACK ve akış çoklama yerleşiktir.
TsgcWebSocketHTTPServer aracılığıyla tek bir TLS bağlantı noktasında HTTP/1.1 ve WebSocket ile birlikte HTTP/2 (h2) sunun. ALPN anlaşması, HPACK ve akış çoklama yerleşiktir.
WebSocket ve HTTP/1.1 için kullanılan aynı TsgcWebSocketHTTPServer, TLS üzerinden HTTP/2'yi de sunar — Specifications.HTTP2 değerini açın, gerisini ALPN halleder.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Bir TsgcWebSocketHTTPServer örneğinde TLS'yi etkinleştirin ve Specifications.HTTP2 değerini açın — ALPN h2 anlaşması yükseltmeyi otomatik olarak halleder.
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;
HTTP/2 etkin TsgcWebSocketHTTPServer — HTTP/1.1, HTTP/2 ve WebSocket arasında tek bir TLS uç noktası paylaşın.
TLS el sıkışması sırasında sunucu hem http/1.1 hem de h2 sunar. İstemci protokolü seçer; sunucu buna göre dağıtır — ayrı bir dinleme yuvası gerekmez.
WebSocket istemcileri yine HTTP/1.1 yolu üzerinden yükseltir. RFC 8441 (HTTP/2 ile WebSocket'leri Başlatma) Specifications.RFC8441 aracılığıyla desteklenir.
Yanıt başlıkları için yerleşik HPACK kodlayıcı ve her isteği kendi stream-id'sinde dağıtan, öncelik ipuçlarına saygı gösteren bir akış-çoklama çekirdeği.
Sunucu push (PUSH_PROMISE) desteklenir ancak artık kullanımdan kaldırılmıştır — modern istemciler bunu yok sayar; bunun yerine ipuçları için 103 Early Hints veya HTTP/3 düşünün.
SSLOptions.IOHandler değerini iohOpenSSL (çok platformlu) veya iohSChannel (Windows) olarak ayarlayın. HTTP/2, RFC 7540 / 9113 dağıtımına göre TLS 1.2+ gerektirir.
Her HTTP/2 bağlantısı, akış sayısını, RTT tahminlerini, giren/çıkan toplam baytları ve anlaşılan SETTINGS çerçevesi parametrelerini OnHTTP2Settings aracılığıyla sunar.
Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.
| Çevrimiçi Yardım — TsgcWebSocketHTTPServer Bu bileşen için tam özellik, metot ve olay referansı. | Aç | |
| Demo Projesi — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin. | Aç | |
| Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen. | Aç | |
| Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz. | Aç |