TsgcWebSocketHTTPServerÖzellikler › HTTP3Options

HTTP3Options Özellik

HTTP/1.1 ve HTTP/2'nin yanı sıra UDP üzerinden HTTP isteklerini sunan HTTP/3 (QUIC) dinleyicisini etkinleştirir.

Sözdizimi

property HTTP3Options: TsgcWSHTTP3Server_Options read FHTTP3Options write SetHTTP3Options;

Varsayılan Değer

Enabled=False, Port=0, AltSvc.Enabled=True

Remarks

Varsayılan olarak sunucu HTTP/3 için dinleme yapmaz. Mevcut TCP/TLS dinleyicisinin yanında bir QUIC dinleyicisi açmak için HTTP3Options.Enabled öğesini True olarak ayarlayın; bu, SSLOptions içinde zaten yapılandırılmış olan sertifika ve anahtarı (CertFile/KeyFile — bu dinleyici için şifrelenmiş bir özel anahtar desteklenmez) ve OpenSSL 3.5 veya sonrasını gerektirir. Port, dinleyicinin bağlandığı UDP bağlantı noktasını ayarlar; bunu 0 değerinde bırakırsanız, SSLOptions.Port içinde zaten ayarlanmış olan bağlantı noktası yeniden kullanılır. HTTP/3 üzerinden gelen istekler, HTTP/1.1 ve HTTP/2 için kullanılan aynı DocumentRoot statik dosya sunumu ve aynı OnCommandGet ile OnCommandOther olayları üzerinden gönderilir, bu nedenle mevcut istek işleme kodu büyük ölçüde olduğu gibi çalışır; kod tarafında dikkat edilmesi gereken iki fark vardır: ARequestInfo.Version bu istekler için 'HTTP/3' değerini bildirir ve işleyiciye geçirilen AContext parametresi nil değerindedir (bir HTTP/3 isteğinin arkasında TCP bağlantısı bulunmaz), bu nedenle bu parametreyi kullanan herhangi bir kod bu durumu göz önünde bulundurmalıdır. AltSvc.Enabled (varsayılan olarak açıktır), dinleyici çalışmaya başladığında HTTPS yanıtlarının HTTP/3 uç noktasını duyuran bir Alt-Svc başlığı taşımasını sağlar, böylece tarayıcılar ve istemciler bunu keşfedip kendiliğinden geçiş yapabilir; her ikisi de etkinleştirildiğinde bu, HTTP/2 Alt-Svc duyurusuyla tek bir başlıkta birleşir. Authentication.Basic, HTTP/3 istekleri üzerinde uygulanır; oturumlar, OAuth2 ve JWT kimlik doğrulaması ile istek yönlendirme bu sürümde bu isteklere uygulanmaz. HTTP/3 dinleyicisi başlatılamazsa — bağlantı noktası kullanımda, sertifika eksik veya geçersiz, OpenSSL 3.5 kullanılamıyor — normal HTTP/1.1 ve HTTP/2 sunucusu etkilenmeden çalışmaya devam eder ve hata OnException üzerinden bildirilir. HTTP/3 desteğiyle derleme yapmak, HTTP3 pack derleyici yönergesinin etkinleştirilmesini gerektirir.

Örnek


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.SSL := true;
oServer.SSLOptions.CertFile := 'c:\certificates\mycert.pem';
oServer.SSLOptions.KeyFile := 'c:\certificates\mycert.pem';
oServer.HTTP3Options.Enabled := true;
oServer.Active := true;

Özelliklere Dön