Web sayfalarının yüklenme hızı, yalnızca dosya boyutlarına değil, bu dosyaların hangi protokolle taşındığına da bağlıdır. HTTP protokolü yıllar içinde HTTP/1.1'den HTTP/2'ye, oradan HTTP/3'e evrildi ve her sürüm hızı belirgin biçimde artırdı. Bu rehberde modern HTTP protokollerini ve bunların siteyi nasıl hızlandırdığını açıklıyoruz.
İlgili içerikler: Gzip ve Brotli sıkıştırma · Core Web Vitals ve sayfa hızı · HTTPS ve TLS 1.3
HTTP/1.1'in Sınırları
Onlarca yıl standart olan HTTP/1.1, modern web için darboğaz haline geldi. En büyük sorunu başkanlık engeli (head-of-line blocking)'dir: bir bağlantı üzerinde istekler sıraya girer, biri yavaşsa arkasındakiler bekler. Tarayıcılar bunu aşmak için sunucuya birden çok paralel bağlantı açar, ama bu da kaynak israfı ve ek gecikme yaratır.
HTTP/2: Multiplexing
HTTP/2, en önemli yeniliği olan multiplexing ile bu sorunu çözer: tek bir bağlantı üzerinden çok sayıda istek ve yanıt aynı anda, iç içe taşınabilir. Artık birinin yavaş olması diğerlerini bekletmez.
- Multiplexing: Tek bağlantıda paralel istek/yanıt akışı.
- Başlık sıkıştırma: Tekrar eden HTTP başlıkları sıkıştırılarak gönderilir.
- İkili (binary) protokol: Metin yerine ikili biçim — daha hızlı ayrıştırma.
- Sunucu push: Sunucunun, istemci istemeden kaynak göndermesi (kullanımı azalmış bir özellik).
HTTP/3: QUIC ile Yeni Nesil
HTTP/3, daha da ileri gider ve taşıma katmanını değiştirir. Geleneksel TCP yerine, UDP üzerine kurulu QUIC protokolünü kullanır. Bunun en büyük kazancı, HTTP/2'de hâlâ TCP seviyesinde kalan başkanlık engelinin tamamen ortadan kalkmasıdır.
QUIC ayrıca bağlantı kurulumunu hızlandırır ve ağ değişiminde (örneğin Wi-Fi'den mobil veriye geçişte) bağlantının kopmadan sürmesini sağlar — mobil kullanıcılar için önemli bir avantaj.
Modern Protokolleri Etkinleştirme
HTTP/2 ve HTTP/3, yalnızca HTTPS üzerinden çalışır — yani önce geçerli bir SSL/TLS sertifikası gerekir. Nginx'te HTTP/2, listen satırına eklenir:
# HTTP/2 etkinleştirme
listen 443 ssl;
http2 on;
# HTTP/3 (QUIC) — yeni Nginx sürümlerinde
listen 443 quic reuseport;
add_header Alt-Svc 'h3=":443"; ma=86400';
Protokolü Doğrulama
Sitenizin hangi protokolü kullandığını tarayıcının geliştirici araçlarında (Network sekmesi, Protocol sütunu) görebilirsiniz: h2 HTTP/2'yi, h3 HTTP/3'ü gösterir. curl --http3 -I https://siteniz.com komutu da HTTP/3 desteğini test eder.
Sıkça Sorulan Sorular
HTTP/2'ye geçmek için kod değişikliği gerekir mi?
Hayır. HTTP/2 ve HTTP/3 protokol seviyesinde çalışır; sitenizin HTML, CSS veya JavaScript kodunu değiştirmeniz gerekmez. Yalnızca sunucu yapılandırması yeterlidir.
HTTP/3'ü hemen açmalı mıyım?
HTTP/3 olgunlaşmış ve tüm modern tarayıcılarca desteklenen bir protokoldür. Sunucunuz destekliyorsa açmak güvenlidir; desteklemeyen istemciler otomatik olarak HTTP/2'ye geri döner.
HTTP/2 ile sıkıştırma yine de gerekli mi?
Evet. HTTP/2 başlıkları sıkıştırır ama içeriği (HTML, CSS, JS) sıkıştırmaz. Gzip/Brotli içerik sıkıştırması ayrı ve hâlâ gereklidir.
KEYDAL hosting çözümleriyle HTTP/2, HTTP/3 ve güncel TLS desteğiyle yayında olun. KEYDAL hosting çözümleri