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

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.

Bileşen sınıfı

TsgcWebSocketHTTPServer

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Professional / Enterprise

Tek bir özellikle HTTP/2'yi etkinleştirin

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;

İçeriğinde neler var

HTTP/2 etkin TsgcWebSocketHTTPServer — HTTP/1.1, HTTP/2 ve WebSocket arasında tek bir TLS uç noktası paylaşın.

ALPN anlaşması

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 bir arada bulunma

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.

HPACK + akış çerçeveleme

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

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.

TLS seçimi

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.

Bağlantı metrikleri

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.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı protokol için yetkili kaynaklar.

Belgeler ve Demolar

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ı.
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.
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.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Delphi'den HTTP/2 Sunmaya Hazır mısınız?

Ücretsiz denemeyi indirin ve tek bir TLS uç noktasından HTTP/1.1, HTTP/2 ve WebSocket sunun.