Chrome veya Firefox gibi bir web tarayıcısı kullanıyorsanız, bir web sitesi adresinin başında ''http://'' veya ''https://'' görürsünüz. HTTP protokolü internette kullanılan en yaygın iletişim protokolüdür. Tarayıcınızın web sunucularıyla bilgi alışverişi yapmasını sağlayarak dijital alışveriş sepetine ürün eklemek veya sosyal medyada gezinmek de dahil olmak üzere bir web sitesinde yaptığınız neredeyse her şeyi mümkün kılar.
HTTP'nin (veya herhangi bir protokolün) çalışması için, bir dili öğrenirken öğrendiğiniz gramer kurallarına benzer şekilde, yaygın olarak anlaşılan bir dizi iletişim kuralı olmalıdır.
HTTP ilk olarak 1989 yılında geliştirilmiş ve son 35 yılda değişen iletişim ihtiyaçlarını karşılamak üzere evrim geçirmiştir. Bugün kullanımda olan 3 ana sürüm vardır:
HTTP/1.1
HTTP/2
HTTP/3.
Bugünkü yazımızdaki konumuz ise HTTP/2 olacaktır.
HTTP/2, HTTP ağ protokolünün ikinci büyük sürümüdür. Internet Engineering Task Force (IETF) tarafından geliştirilmiş ve Mayıs 2015'te onaylanmıştır. HTTP/2'nin birincil amacı, gecikmeyi azaltarak ve verilerin istemciler ile sunucular arasında iletilme şeklini optimize ederek web sitelerinin ve web uygulamalarının performansını artırmaktır. Bunu birkaç temel özellik aracılığıyla gerçekleştirir:
En yaygın kullanılan internet uygulama protokolü olan HTTP, zaman içinde gelişmiştir. Daha önceki yinelemeler nispeten basitti. Örneğin HTTP/0.9, World Wide Web'i başlatan kısa ve tek satırlık bir protokoldü. Daha sonra HTTP/1.0, HTTP/0.9'un popüler uzantılarını gayri resmi bir standartta belgelemiş, HTTP/1.1 ise resmi bir IETF standardı getirmiştir.
Örneğin, HTTP/1.1'de eşzamanlılığı sağlamak ve gecikmeyi azaltmak için istemcilerin birden fazla bağlantı kurması gerekir. Ayrıca, HTTP/1.1 isteklerin ve yanıtların başlık alanlarını sıkıştıramaz, bu da gereksiz ağ trafiğine yol açar. Ek olarak, etkili kaynak önceliklendirme desteğinden yoksundur, bu da temel TCP bağlantısının optimal olmayan kullanımına yol açar.
Ağ uygulamalarının kapsamı, karmaşıklığı ve günlük hayatımızdaki önemi artmaya devam ettikçe, HTTP/2 öncüllerinin sınırlamalarını ele almak için geliştirilmiştir. HTTP/2, HTTP'nin uygulama semantiğini korurken ve istek yöntemlerinin, durum kodlarının ve başlık alanlarının kullanımını sürdürürken, öncelikle verilerin biçimlendirilmesini ve iletimini değiştirmeye odaklanır. Ayrıca, ağ gecikmesini azaltmak ve istemciler için web sayfası yükleme hızını artırmak için sunucu itme mekanizmasını sunar.
HTTP/2 çok sayıda avantaj sunmasına rağmen çeşitli nedenlerden dolayı yaygın olarak benimsenmemiştir:
HTTP/1.1, yirmi yılı aşkın bir süredir web iletişiminin bel kemiğini oluşturmaktadır. Amacına iyi hizmet etmiş olsa da, HTTP/2 çeşitli iyileştirmeler sunmaktadır:
HTTP/2 ve halefi HTTP/3, performans geliştirme açısından birçok hedefi paylaşır, ancak temel teknolojileri bakımından farklılık gösterirler:
HTTP/2 |
HTTP/3 |
|
Protokol |
Transmission Control Protocol (TCP) güvenilirlik sunar ancak hat başında engellemesinde sorun yaşar. |
Quick UDP Internet Connections (QUIC), gecikmeyi azaltır ve TCP satır başı engelleme sorunlarını ortadan kaldırır. |
Çoklama |
Çoklamayı destekler ve tek bir bağlantı üzerinden birden fazla istek ve yanıt gönderilmesine olanak tanır. |
Çoklama yeteneklerini destekler ve optimize eder. Akış önceliklendirmesi daha esnek ve verimlidir. |
Bağlantı Kurulumu |
Bağlantının kurulması için TCP üç yönlü el sıkışması, gecikmeye neden olabilir. |
QUIC, kriptografik ve taşıma el sıkışmalarını birleştirir. |
Güvenlik |
Şifreleme için TLS'yi teşvik eder ancak zorunlu tutmaz. |
Varsayılan olarak TLS 1.3'ü içerir. |
Performans |
Başlık sıkıştırma ve sunucu itme yoluyla performans iyileştirmeleri. |
QUIC ile başlık sıkıştırmayı temel alarak hız ve güvenilirlikte iyileştirmeler sunar. |
Hata Kurtarma |
TCP hata kurtarma mekanizmaları yavaş olabilir. |
QUIC'in ileri hata düzeltme (FEC) gibi yeni hata kurtarma özellikleri tıkanıklığı en aza indirir ve paket kaybının etkisini kontrol eder. |
Sunucu İtme |
Evet |
Evet |
Hareketlilik ve Küresel Erişilebilirlik |
Ağlar arası hareketliliğin yeniden kurulması gerekiyor. |
Bağlantı geçişini destekler. Böylece web siteleri ve çevrimiçi hizmetler herkes için her yerde iyi çalışır. |
HTTP/1.1'den HTTP/2'ye geçiş biraz karmaşık olsa da aşağıdaki adımları uygulayarak geçişi sağlayabilirsiniz:
Sonuç olarak HTTP/2, selefi HTTP/1.1'e göre çok sayıda iyileştirme sunan web iletişiminde önemli bir adımdır. Henüz evrensel olarak benimsenmemiş olsa da, hız ve verimlilik açısından sağladığı avantajlar onu web geliştiricileri ve yöneticileri için cazip bir seçenek haline getirmektedir.
HTTP/2'yi etkinleştirmek için gerekli adımları izleyerek ve gerekli ayarlamaları yaparak bu modern web protokolünden tam olarak yararlanabilir ve web sitenizdeki kullanıcı deneyimini geliştirebilirsiniz.