
Sunucunuzda tek bir yapılandırma satırıyla açabileceğiniz bir hız kazancı var — ama bu kazanç herkes için aynı büyüklükte değil.
Bu yazı, HTTP protokol sürümlerinin neyi değiştirdiğini ve VDS sunucu üzerinde nasıl etkinleştirileceğini ele alıyor.
Sürümler Arasındaki Temel Fark
Üç sürüm arasındaki ayrım, verinin nasıl taşındığıyla ilgilidir:
| Sürüm | Taşıma yapısı |
|---|---|
| HTTP/1.1 | Bağlantı başına sırayla istek |
| HTTP/2 | Tek bağlantıda çoklu akış |
| HTTP/3 | TCP yerine UDP tabanlı taşıma |
HTTP/1.1'in temel sınırı, bir bağlantı üzerinde aynı anda tek istek işlenmesidir. Tarayıcılar bunu aşmak için aynı sunucuya birden fazla bağlantı açar — bu da sunucu tarafında gereksiz kaynak tüketimi demektir.
HTTP/2 bu sorunu multiplexing ile çözer: tek bir bağlantı üzerinde onlarca istek eşzamanlı taşınır.
HTTP/2'nin Kalan Sorunu
HTTP/2 istek seviyesindeki tıkanmayı çözdü ama bir katman aşağıda sorun devam etti:
- TCP tek bir sıra olarak çalışır. Bir paket kaybolursa tümü bekler.
- Kayıp paket tüm akışları durdurur. Bağımsız istekler bile etkilenir.
- Mobil ağlarda etki büyür. Paket kaybı daha sıktır.
Buna head-of-line blocking denir ve HTTP/2'de uygulama katmanından taşıma katmanına inmiştir — çözülmemiş, yer değiştirmiştir.
HTTP/3'ün getirdiği asıl yenilik budur: TCP yerine UDP üzerine kurulu QUIC kullanarak, her akışı bağımsız hâle getirir. Bir paketin kaybolması yalnızca kendi akışını etkiler.
Gerçek Kazanç Ne Kadar?
Beklentiyi doğru kurmak gerekir. Kazanç şu durumlarda belirgindir:
- Sayfa çok sayıda küçük dosya içeriyorsa — HTTP/2 belirgin fark yaratır
- Ziyaretçiler mobil ağdaysa — HTTP/3 kayıplı bağlantılarda öne çıkar
- Coğrafi mesafe fazlaysa — gecikme yüksekken kazanç artar
- Bağlantı sık kopuyorsa — QUIC bağlantıyı IP değişse de sürdürür
Buna karşılık kazanç şu durumlarda küçüktür: tek büyük dosya indiriliyorsa, ziyaretçi hızlı ve kararlı bir bağlantıdaysa, ya da darboğaz sunucunun kendisiyse.
Dördüncü madde mobil kullanıcılar için somut bir fayda sağlar: kullanıcı kablosuz ağdan mobil veriye geçtiğinde QUIC bağlantısı kopmaz, çünkü bağlantı IP adresine değil bir oturum kimliğine bağlıdır.
Sunucu Tarafında Etkinleştirme
Kendi sunucunuzu yönettiğiniz bir VDS sunucu üzerinde bu geçişi kendiniz yapabilirsiniz. İzlenecek adımlar:
- HTTPS zorunludur. Her iki sürüm de sertifika ister.
- Web sunucusu sürümünü kontrol edin. Eski sürümler desteklemez.
- Dinleme yapılandırmasını güncelleyin. Protokol açıkça belirtilmelidir.
- HTTP/3 için UDP portunu açın. Güvenlik duvarında izin gerekir.
- Duyuru başlığı ekleyin. Tarayıcı HTTP/3'ü böyle öğrenir.
Dördüncü madde en sık atlanan adımdır: HTTP/3 UDP üzerinden çalışır ve çoğu güvenlik duvarı yapılandırması yalnızca TCP portlarını açıktır. Bu port kapalıysa yapılandırma doğru görünür ama protokol hiç kullanılmaz.
Beşinci madde ise geçişin nasıl gerçekleştiğini açıklar: tarayıcı önce normal bir bağlantı kurar, sunucu yanıtında HTTP/3'ün mevcut olduğunu duyurur, sonraki istekler yeni protokolle gider.
Çalıştığını Doğrulamak
Etkinleştirdikten sonra gerçekten kullanıldığını kontrol edin:
- Tarayıcı geliştirici araçlarında ağ sekmesini açın
- Protokol sütununu görünür yapın
- Sayfayı yenileyin ve değerleri okuyun
- İlk isteğin farklı olabileceğini unutmayın
- Sunucu günlüklerinde protokol alanını kontrol edin
Dördüncü madde kafa karışıklığını önler: ilk istek genellikle HTTP/2 ile gider, HTTP/3'e geçiş ikinci istekten itibaren görülür. Tek bir istek görüp "çalışmıyor" sonucuna varmayın.
Artık Gereksiz Olan Eski Yöntemler
HTTP/1.1 döneminde standart olan bazı optimizasyonlar artık zarar verir:
| Eski yöntem | HTTP/2 sonrası durumu |
|---|---|
| Dosyaları tek dosyada birleştirmek | Gereksiz, önbelleklemeyi bozar |
| Görselleri tek görselde toplamak | Avantajı kalmadı |
| Farklı alan adlarına dağıtmak | Ek bağlantı maliyeti getirir |
| Satır içi gömme | Sayfa boyutunu şişirir |
Üçüncü satır özellikle ters etki yapar: kaynakları farklı alan adlarına dağıtmak, HTTP/2'nin tek bağlantı avantajını ortadan kaldırır ve her alan adı için yeni el sıkışma maliyeti doğar.
Karşılaşılabilecek Sorunlar
- Kurumsal ağlar UDP'yi engelleyebilir. HTTP/3 kullanılamaz, HTTP/2'ye düşer.
- Eski ters vekiller desteklemez. Önündeki katman sınırlayıcıdır.
- Yük dengeleyici uyumu gerekir.
- İzleme araçları protokolü tanımayabilir.
İkinci madde önemli bir gerçeği gösterir: protokol sürümünü belirleyen, ziyaretçinin ilk temas ettiği katmandır. Uygulama sunucunuz HTTP/3 desteklese de, önündeki ters vekil desteklemiyorsa sonuç değişmez.
İyi haber şu ki geri düşme sorunsuz çalışır — HTTP/3 kullanılamadığında bağlantı sessizce HTTP/2'ye iner, kullanıcı bir hata görmez.
Öncelik Sırası
Protokol yükseltmesi bir performans çalışmasının neresinde durmalı?
- Sunucu yanıt süresini ölçün — asıl darboğaz orada olabilir
- Önbellek katmanını kurun
- Görsel boyutlarını düşürün
- HTTP/2'yi etkinleştirin
- Ölçün, kazancı doğrulayın
- HTTP/3'ü ekleyin
Birinci madde gerçekçi bir uyarıdır: sunucunuz her isteğe bir saniyede yanıt veriyorsa, protokol değişikliği bunu düzeltmez. Protokol optimizasyonu, temel sorunlar çözüldükten sonra anlam kazanır.
Sonuç
HTTP/2 tek bağlantıda çoklu istek taşıyarak en büyük kazancı sağlar; HTTP/3 ise TCP yerine UDP tabanlı QUIC kullanarak paket kaybının tüm akışları durdurmasını engeller — bu da özellikle mobil ağlarda fark yaratır. Etkinleştirirken en sık atlanan adım, HTTP/3 için güvenlik duvarında UDP portunu açmaktır; kapalıysa yapılandırma doğru görünür ama protokol hiç kullanılmaz. Geçiş sonrası eski optimizasyonları geri alın: kaynakları farklı alan adlarına dağıtmak artık zarar verir. Ve önce sunucu yanıt sürenizi ölçün — protokol, temel sorunları çözmez.
Sıkça Sorulan Sorular (SSS)
HTTP/2 mi HTTP/3 mü etkinleştirmeliyim?
İkisini birlikte. HTTP/2 daha yaygın desteklenir ve temel kazancı sağlar; HTTP/3 ise onun üzerine mobil ve kayıplı ağlarda ek fayda getirir. HTTP/3 kullanılamadığında bağlantı sessizce HTTP/2'ye iner, kullanıcı bir hata görmez.
HTTPS olmadan kullanabilir miyim?
Pratikte hayır. Tarayıcılar her iki sürümü de yalnızca şifreli bağlantı üzerinden kullanır. Sertifikanız yoksa protokol yükseltmesi hiçbir etki yaratmaz.
HTTP/3 açtım ama kullanılmıyor, neden?
En yaygın neden güvenlik duvarında UDP portunun kapalı olmasıdır. İkinci neden, ilk isteğin zaten HTTP/2 ile gitmesidir — geçiş ikinci istekten itibaren görülür. Ayrıca bazı kurumsal ağlar UDP trafiğini tamamen engeller.
Dosyaları birleştirmeye devam etmeli miyim?
Hayır. HTTP/2 sonrası bu yöntem gereksizdir ve zararlıdır: tek büyük dosya, içindeki küçük bir değişiklikte tamamen yeniden indirilir. Ayrı dosyalar daha iyi önbelleklenir.