Ana içeriğe geç
Kitap 11 · AğlarSayfa 12 / 39

HTTP/3

Okunuşu
eyç ti ti pi tri
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/http-3

Kısaca

HTTP/3, sayfaları özellikle güvenilmez ağlarda daha hızlı yüklemek için TCP yerine UDP üzerindeki QUIC protokolüyle çalışan, HTTP'nin üçüncü büyük sürümüdür.

HTTP/3 nedir?

HTTP/3, IETF tarafından 2022'de RFC 9114 olarak yayımlandı. Geliştiricilerin önceki sürümlerden bildiği her şeyi, yani aynı metotları, durum kodlarını, başlıkları ve URL'leri korur, ama alttaki taşıma katmanını değiştirir: üzerinde TLS olan TCP yerine, TLS 1.3 şifrelemesi yerleşik olan ve UDP üzerine kurulu bir protokol olan QUIC üzerinde çalışır. HTTP/2 gibi birçok isteği tek bir bağlantı üzerinden çoklar ve başlıkları, HTTP/2'nin HPACK'inin QUIC'e uyarlanmış bir çeşidi olan QPACK ile sıkıştırır.

Kazanımlar QUIC'ten gelir. Yeni bir bağlantı iki ya da üç yerine genellikle tek bir gidiş-dönüşten sonra hazır olur, geri dönen bir ziyaretçi de isteğini daha ilk pakette gönderebilir. Her akış bağımsız olarak iletildiği için kaybolan bir paket bağlantıdaki her isteği değil, yalnızca ait olduğu dosyayı geciktirir; bir telefon Wi-Fi'dan mobil veriye geçtiğinde de indirme devam edebilir.

Tarayıcılar işe HTTP/3 ile başlamaz, çünkü bir sunucunun onu desteklediğini önceden bilemezler. HTTP/2 ya da HTTP/1.1 üzerinden gelen ilk yanıt bir Alt-Svc başlığı taşır ya da site DNS'te bir HTTPS kaydı yayımlar; tarayıcı da sonraki istekler için HTTP/3'e geçer, ağ UDP'yi engelliyorsa TCP'ye geri döner. Bütün büyük tarayıcılar ve CDN'ler, NGINX ve Caddy gibi sunucular da onu destekler; bu yüzden onu açmak genellikle kod değil, yapılandırma değişikliğidir.

HTTP/3 sık sık QUIC ile karıştırılır ve HTTP/2 ile ilişkisi de çoğu zaman yanlış anlaşılır. QUIC taşıma protokolüdür, HTTP/3 ise HTTP'nin onun üzerine eşlenmesidir; DNS over QUIC gibi başka protokoller de QUIC kullanır. HTTP/3, HTTP/2'yi gereksiz kılmaz: ikisi benzer özelliklerle yan yana kullanılır ve asıl fark, HTTP/2'nin akışlarının tek bir TCP bağlantısını paylaşması, bu yüzden kaybolan tek bir paketin hepsini durdurması, HTTP/3'ün akışlarının ise durdurmamasıdır.

Önemli noktalar

  • HTTP/3, 2022'de RFC 9114 olarak standartlaştırıldı ve UDP üzerindeki QUIC ile çalışır.
  • HTTP anlamı aynı kalır: metotlar, durum kodları ve başlıklar değişmez.
  • Daha hızlı bağlantı kurulumu ve bağımsız akışlar, TCP'nin sıra başı tıkanmasını (head-of-line blocking) önler.
  • Sunucular onu Alt-Svc ya da DNS ile duyurur; UDP engellendiğinde tarayıcılar HTTP/2'ye geri döner.
  • En çok yavaş, paket kaybı yaşayan ya da değişen mobil ağlarda işe yarar.

Örnek

NGINX'te HTTP/3'ü açmaknginx
server {
    # HTTP/3 over QUIC on UDP port 443; HTTP/1.1 and HTTP/2 on TCP port 443
    listen 443 quic reuseport;
    listen 443 ssl;
    http2 on;

    ssl_certificate     /etc/ssl/example.com.crt;
    ssl_certificate_key /etc/ssl/example.com.key;

    # Tell browsers that HTTP/3 is available on the same port
    # (the firewall must also allow UDP port 443)
    add_header Alt-Svc 'h3=":443"; ma=86400';
}

Sık sorulan sorular

HTTP/2 ile HTTP/3 arasındaki fark nedir?

Aynı HTTP özelliklerini sunarlar, ama HTTP/2 TCP üzerinde, HTTP/3 ise UDP üzerindeki QUIC ile çalışır. Bu sayede HTTP/3 bağlantıları daha hızlı kurar, paketler kaybolduğunda akışları birbirinden bağımsız tutar ve ağ değişikliklerinden sonra da ayakta kalır.

HTTP/3 kullanmak için kodumu değiştirmem gerekir mi?

Hayır. İstekler, yanıtlar ve başlıklar aynı şekilde çalışır, bu yüzden uygulamalar değişmez. Bu sürüm web sunucusunda, yük dengeleyicide ya da CDN'de açılır; orada UDP 443 numaralı portun da açık olması gerekir.

HTTP/3 her zaman daha mı hızlı?

Her zaman değil. Hızlı ve kararlı bağlantılarda fark küçüktür; QUIC sunucuda TCP'den daha fazla işlemci gücü de harcayabilir. En büyük kazanç, paket kaybı yaşanan mobil ve uzun mesafeli bağlantılardadır.

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar