Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

HTTP/2'ye geçiş için gerekenler​


HTTP/2'ye geçmek için web sunucusunun HTTPS üzerinde HTTP/2 dinlemesini etkinleştirin, yapılandırmayı doğrulayın, servisi yeniden yükleyin ve istemci tarafından gerçekten HTTP/2 bağlantısı kurulduğunu test edin. Çoğu tarayıcı senaryosunda TLS sertifikası, ALPN desteği ve HTTP/2 destekleyen bir sunucu yazılımı gerekir. HTTP/1.1 desteğini hemen kaldırmayın; HTTP/2 kullanamayan istemciler için geri dönüş olarak bırakın.

HTTP/2 nasıl çalışır?​


HTTP/1.1'de istekler çoğunlukla metin tabanlı ve bağlantı başına daha sınırlı bir akışla işlenirken HTTP/2, aynı TCP bağlantısı üzerinde birden fazla isteği akışlar halinde taşıyabilir. Başlıklar sıkıştırılır ve sunucu, uygun gördüğü kaynakları önceliklendirebilir. Bu geçiş HTML, CSS veya uygulama kodunu HTTP/2'ye özel biçimde yeniden yazmayı gerektirmez; değişiklik öncelikle TLS sonlandıran web sunucusu, ters proxy veya CDN katmanında yapılır.

Tarayıcıların kullandığı normal HTTP/2 senaryosu HTTPS'tir. Sadece sunucuda HTTP/2'yi açmak yeterli değildir: alan adının HTTPS üzerinden erişilebilir olması, sertifikanın geçerli olması ve ön taraftaki CDN ya da yük dengeleyicinin bağlantıyı HTTP/1.1'e düşürmemesi gerekir.

Varsayımsal Nginx örneği​


Aşağıdaki örnekte HTTPS zaten yapılandırılmış, sertifika yolları da sunucuda mevcut kabul edilmiştir. example.com yerine kendi alan adınızı, sertifika yollarını da gerçek yollarla değiştirin. Örnek Nginx 1.25.1 ve sonrasındaki http2 on; direktifini kullanır. Eski sürümlerde görülen listen satırındaki http2 parametresini güncel yapılandırmayla karıştırmayın. Kurulu sürümü ve http_v2 modül desteğini nginx -V ile kontrol edin. Mevcut uygulamanızın proxy/FastCGI ve erişim kurallarını bu örnekle bütünüyle değiştirmeyin.

Kod:
server {
    listen 443 ssl;
    http2 on;
    server_name example.com;

    ssl_certificate     /etc/ssl/example.com/fullchain.pem;
    ssl_certificate_key /etc/ssl/example.com/privkey.pem;

    root /var/www/example.com;
    index index.html;
}

Uygulama sırası:

  1. HTTPS sanal sunucunuzun yedeğini alın ve HTTP/2 desteğinin kurulu olduğunu kontrol edin.
  2. İlgili HTTPS sunucusunda listen 443 ssl; dinleyicisine ek olarak http2 on; kullanın. HTTP için kullanılan 80 numaralı dinleyiciyi HTTP/2'ye çevirmeye çalışmayın; HTTP'den HTTPS'e yönlendirme ayrı kalabilir.
  3. Yapılandırmayı yeniden yüklemeden önce nginx -t komutunu çalıştırın.
  4. Test başarılıysa systemctl reload nginx ile yeniden yükleyin. Yeniden başlatma yerine yeniden yükleme, mevcut bağlantıları gereksiz yere kesmemek için tercih edilir.
  5. Önce curl -V çıktısında HTTP2 özelliğini doğrulayın. HTTP/2 destekli curl ile curl -sS -o /dev/null -w '%{http_version}\n' --http2 https://example.com/ komutunu çalıştırın.

Beklenen çıktı 2 değeridir. Bu değer, test edilen HTTPS uç noktasında HTTP/2 bağlantısı kurulduğunu gösterir. 1.1 görürseniz HTTP/2 sunucuda açık olsa bile CDN, proxy, yük dengeleyici veya istemci bağlantıyı HTTP/1.1 olarak kuruyor olabilir. Sertifika, ALPN veya yapılandırma hatası görürseniz önce nginx -t çıktısını ve ilgili servis günlüklerini inceleyin; başarısız yapılandırmayı zorla yeniden yüklemeyin.

Hangi katmanı değiştirmelisiniz?​


HTTP/2'nin etkinleştirileceği yer, ziyaretçinin bağlandığı ilk HTTPS katmanıdır. Sunucu doğrudan internete açıksa web sunucusu; CDN kullanıyorsanız CDN'nin istemciye bakan HTTPS ayarı; ters proxy kullanıyorsanız dış proxy katmanı belirleyicidir. Proxy ile arka uç arasındaki bağlantının HTTP/1.1 olması, ziyaretçinin proxy ile HTTP/2 konuşmasını tek başına engellemez. Ancak proxy'nin dışarıya HTTP/2 sunması ve isteği doğru arka uca iletmesi gerekir.

Aşağıdaki ayrım, hangi sonucu yorumlayacağınızı netleştirir:

Test sonucuMuhtemel anlamıSonraki adım
2Uç nokta HTTP/2 kabul ediyorTarayıcı geliştirici araçlarında protokolü ayrıca doğrulayın
1.1HTTP/2 ilan edilmiyor veya aradaki katman düşürüyorALPN, CDN/proxy ve sunucu dinleyicisini kontrol edin
TLS ya da bağlantı hatasıHTTPS veya sertifika sorunu HTTP/2 testinden önce başarısız oluyorÖnce normal HTTPS erişimini düzeltin

Geçişten sonra sayfanın HTML, CSS, JavaScript, görseller, oturum açma ve dosya yükleme işlemlerini kontrol edin. HTTP/2, uygulama hatalarını kendiliğinden düzeltmez; bağlantı protokolü değişse de uygulamanın döndürdüğü durum kodları ve içerik başlıkları ayrıca test edilmelidir.

Sık yapılan hatalar​


  • Sadece arka uçta HTTP/2'yi açmak: Kullanıcı CDN'ye veya ters proxy'ye bağlanıyorsa gerçek dış uç nokta hâlâ HTTP/1.1 sunabilir.
  • HTTP/1.1'i tamamen kapatmak: Eski istemciler, özel istemciler veya bazı izleme araçları erişemeyebilir. Önce uyumluluğu gözlemleyin.
  • Sertifikayı kontrol etmeden HTTP/2 testi yapmak: Geçerli HTTPS bağlantısı kurulmadan HTTP/2 sonucu yorumlanamaz.
  • Eski server push ayarlarını kopyalamak: Temel HTTP/2 geçişi bunu gerektirmez; Nginx’in güncel sürümlerinde eski push direktifleri de artık kullanılmaz.
  • Tarayıcı yerine yalnızca sunucu yapılandırmasına güvenmek: Komut satırı ve tarayıcı geliştirici araçları, gerçek istemci bağlantısının hangi protokolü kullandığını ayrı ayrı doğrulamalıdır.

Sık sorulan sorular​


HTTP/2 için web sitesindeki tüm bağlantıları değiştirmek gerekir mi?​


Hayır. Aynı alan adına ait HTTPS kaynakları normal URL biçimleriyle çalışmaya devam eder. HTTP/2, TCP üzerinde HTTP iletişiminin aktarım biçimini belirleyen uygulama katmanı protokolüdür; bağlantı adreslerine ayrıca bir h2:// öneki eklenmez.

HTTP/2 etkinleşince HTTP/3 de otomatik olarak açılır mı?​


Hayır. HTTP/3 ayrı bir protokol ve ayrı bir sunucu/CDN yapılandırmasıdır. HTTP/2 geçişini başarıyla doğrulamak HTTP/3 desteğinin bulunduğunu göstermez.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.