HTTP/2 NEDİR?

Her zamanki gibi teknik detaylara geçmeden önce HTTP nedir? Kısaca ondan bahsedelim.

HTTP Nedir?

Tarihçe

HTTP  ilk olarak, web sunucuları ve istemciler arasında yüksek seviyeli veri iletişim işlevlerini gerçekleştirmek için uygulama protokolünü basitliği göz önünde bulundurarak tasarlayan World Wide Web’in öncüsü Tim Berners Lee tarafından önerilmiş bir protokoldür.

HTTP’nin ilk belgelenmiş sürümü 1991’de HTTP0.9 olarak yayınlandı. Daha sonra 1996’da HTTP1.0 resmi olarak tanıtıldı ve kullanılmaya başlandı. HTTP1.1 1997’de bunu takip etti ve o zamandan beri çok az yinelemeli iyileştirme aldı.

Şubat 2015’te HTTP Çalışma Grubu HTTP’yi revize etti ve uygulama protokolünün ikinci ana sürümünü HTTP / 2 biçiminde geliştirdi. Mayıs 2015’te ise HTTP / 2 uygulama özelliği, Google’ın HTTP uyumlu protokolüne yanıt olarak resmi olarak standartlaştırıldı.

Özetlemek gerekirse;

HTTP, internetin kullanılması ile birlikte dünya çapında ağ üzerinde kullanılan bir iletişim protokolüdür. HTTP‘nin açılımı “Hyper Text Transfer Protocol” yani “Hiper Metin Transfer Protokolü“dür.

HTTP protokolü ağ üzerinden web sayfalarının görüntülenmesini sağlayan protokole verilen isimdir. HTTP protokolü istemci ile sunucu arasındaki bilgi alışveriş kurallarını belirler.

İstemci tarafından sunucuya bir istek gönderir. Bu istek web tarayıcıları (Chrome, Firefox vb) aracılığı ile sunucuya iletilir. Sunucu kendisine gönderilen isteği alır ve web sunucu programları ile cevap verir. Bu aradaki alışveriş kurallarını ise HTTP protokolü belirler.

HTTP/2 Nedir?

Özellikle internet tarafında süratli bir şekilde hız çağına geçiş yapmaktayız. Kullanıcı dikkat sürelerinin web ortamında birkaç saniyelere kadar düşmüş olması hız konusunda web sitelerinin ciddi yatırım ve iyileştirmeler yapmaları gerektiği gerçeğini ortaya çıkarmıştır.

SEO konusunda da web site hızına özellikle vurgu yapmaktayız. Bununla beraber HTTP / 2 protokolu web sitelerini büyük ölçüde hızlandıracak ve SEO’nuza yardımcı olabilecek verileri taşımak için yeni bir protokol olarak karşımıza çıkmaktadır.

Önceki HTTP/1.1 protokolü, her statik dosya için (css, js, resim, video vb.) ayrı istekler göndermesi ve sunucunun aynı şekilde yanıt vermesi web sayfa açılış sürelerinin uzamasına neden olmaktaydı. HTTP / 2’de ise hatlar açık kalır ve aynı anda birçok istek gönderilebilir. Gelen isteklerin toplu olarak alınması ve aynı şekilde karşılık bulması sayfa hızında ciddi oranda artış sağlamaktadır.

HTTP / 2, web’in en büyük darboğazlarından birini ortadan kaldırmak için yeni teknolojileri kullanır. Sunucular artık bir tarayıcıyla tek bir bağlantı açabilir ve her şey tamamlanana kadar bir web sitesinin tüm dosyalarını göndermeye devam edebilir. Daha sonra, bağlantı kapanır ve tarayıcı siteyi oluşturabilir.

HTTP1.1’de Sorun Tam Olarak Neydi?

HTTP1.1, TCP bağlantısı başına yalnızca bir bekleyen isteği işlemekle sınırlıydı ve tarayıcıları aynı anda birden çok isteği işlemek için birden çok TCP bağlantısı kullanmaya zorladı.

Buna paralel olarak çok fazla TCP bağlantısı kullanmak, ağ kaynaklarının yükünü artırarak TCP tıkanıklığına yol açmaya başladı. Ek istekleri işlemek için birden çok bağlantı kullanan web tarayıcıları, mevcut ağ kaynaklarının daha büyük bir bölümünü kaplar ve bu nedenle diğer kullanıcılar için ağ performansını düşürür.

Tarayıcıdan birden çok istek göndermek, veri aktarım kablolarında veri çoğaltmasına da neden olur. Bu da istenen bilgileri uç düğümlerde hatasız olarak çıkarmak için ek protokoller kullanmayı gerektirir.

İnternet endüstrisi, diğerlerinin yanı sıra domain adı parçalama, birleştirme, veri satır içi ve birleştirme gibi uygulamalarla doğal olarak bu kısıtlamaları kırmak zorunda kaldı. Temel TCP bağlantılarının HTTP1.1 ile etkisiz kullanımı da zayıf kaynak önceliklendirmesine yol açarak web uygulamaları karmaşıklık, işlevsellik ve kapsam açısından büyüdükçe üst seviyede performans düşüşüne neden olur.

Web, eski HTTP tabanlı ağ teknolojilerinin kapasitesinin çok ötesine geçmiştir. On yıldan uzun bir süre önce geliştirilen HTTP1.1’in temel nitelikleri, bazı utanç verici performans ve güvenlik boşluklarının kapılarını açtı.

HTTP/2 Nasıl Çalışır?

Bir siteyi ziyaret etmek için bir bağlantıya tıkladığınızda, sunucuya bir istek gönderilir. Sunucu, bir durum mesajı ile (404, 200 vb)  ya da o web sitesi için bir dosya listesi ile yanıt verir. Bu listeyi görüntüledikten sonra, tarayıcı dosyaları teker teker sorar. Aslında HTTP 1.1 ve HTTP / 2 arasındaki fark, bundan sonra başlar.

Yeni bir Puzzle seti almak istediğinizi varsayalım. İlk önce mağazaya gider ve Puzzle satın alırsınız. Daha sonra evde kutuyu açar ve size Puzzle’ı nasıl tamamlamanız gerektiğine dair talimatlara bakarsınız. Her bir işlem için tek bir parça. Bu nedenle, her parça için bir sonraki parçayı nasıl kullanmanız gerektiğine dair sürekli ana görsele ve talimatlara bakmanız gerekir.  Bu ileri geri hamleler Puzzle tamamlanana kadar devam eder. Puzzle setinizde 1500 parça varsa tamamlamanız da biraz zaman alır. İşte HTTP1.1 aslında bunu yapar.

HTTP / 2’de ise bu durum değişir. Puzzle setini almak için mağazaya gidin. Ürünü alın, açın, talimatları bulun ve Puzzle setinin bir bölümünde kullanılan tüm parçaları isteyebilirsiniz. Kılavuza bakmanıza gerek kalmadan daha fazla parça için talimatları sormaya devam edebilirsiniz. “Bu parçalar Puzzle’in bu bölümünde bir araya geliyor, işte buradalar.” Gerçekten hızlı bir şekilde istiyorsanız, tüm tek seferde bile alabilirsiniz, böylece seti anında bitirebilirsiniz.

hhtp2 örnek

HTTP / 2, yükleme sürelerinizi hızlandırmanıza yardımcı olabilecek birçok özelliğe sahiptir. Elbette en önemlisi çoğullamadır. Yani transfer süreci boyunca açık kalan bir bağlantı üzerinden aynı anda birden fazla istek gerçekleşebilir.

Yukarıda söylediğim gibi, HTTP1.1 ile bir tarayıcı bir istek gönderir,  sunucu bir cevap geri gönderir, bu cevap bir durum mesajı ve HTML gövdesi içerir,  siteyi oluşturmak için gereken her dosya için tek bir bağlantının açılması gerekir ve tekrar tekrar bu durum devam eder. Bu bulmacanın bir parçası kaybolursa ya da hata verirse geri kalanı için süreci daha da yavaşlatabilir.

HTTP/2 ve SEO

Hıza ihtiyacımız var. Site hızı, yıllardır SEO sıralama faktörü olmuştur. Özellikle mobil öncelikli dizinin kullanıma sunulmasıyla birlikte Google, mobil sitenizin yükleme hızına eleştirel bir bakış atacak gibi görünüyor. Siteler son birkaç yılda sadece büyüdü ve büyük sitelerin HTML, JavaScript, CSS, resimler vb. gibi birçok dosya varlığı var, bu da daha uzun yükleme süresi anlamına geliyor.

Diğer bir büyük sorun ise özellike mobil cihazlardaki “gecikmedir”. Gecikme süreniz ne kadar uzunsa, isteğinizin sunucuya ulaşması ve sunucunun yanıtı geri göndermesi o kadar uzun sürer. Bu nedenle, dosyalarınızı okuyucularınıza en yakın yerden ulaştırma süresini azaltmak için her zaman bir CDN kullanmalısınız.

Tarayıcılar, kendi içindeki çalışmaya ek süre ekleyen az sayıda çoklu bağlantıyı idare edebilirken, bir şeyleri ileri geri gönderme süreci gerçekten değişmez. Sunucunuzun bu süreci iyileştirmesi adına yapabileceğiniz bazı ince ayarlamalar vardır ancak bu tercihler arasında HTTP1.1 mantıklı bir seçim olmaz. HTTP / 2, bu işlemin sunucular ve tarayıcılar için yönetilmesini çok daha kolay hale getirir. Bu nedenle işleri büyük ölçüde hızlandırır.

HTTP/2 ile birlikte sunucular üzerindeki yükün en aza indirilmesi ve sürecin hızlanması da doğal olarak site hızınıza ve doğrudan SEO’nuza etki etmektedir.

HTTP/2 Protokolüne Nasıl Geçiş Yapılır?

Web sitenizde HTTP/2 ’yi ayarlamak için bu basit adımları izleyin.

1.Adım: HTTPS’nin etkinleştirildiğinden emin olun.

Geçerli bir otoriteden SSL Güvenlik Sertifikası alın ve etkinleştirin.

2.Adım: Sunucu yazılımı dahil temel ağ altyapısının HTTP / 2 ‘yi desteklediğinden emin olun.

Web sunucunuzla iletişime geçerek HTTP/2 ’yi desteleyip desteklemediğini sorun. Gerekirse güncelleme isteyin.

HTTP/2 Nasıl Kontrol Edilir?

Web sitenizin Http/2 protokolünü destekleyip desteklemediğini öğrenmek için https://tools.keycdn.com/http2-test adresinde sitenizi sorgulatabilirsiniz.

Google Tarayıcıları HTTP/2’yi Tarayacak Mı?

Google Kasım 2020 tarihinden itibaren bazı web sitelerini HTTP/2 üzerinden tarayacağını duyurmuştur. Google, bu değişikliğin sunucu kaynak kullanımı açısından taramayı daha verimli hale getirmesini beklediğini açıklamıştır.

HTTP/2 ile Googlebot, sunucuya tek bir istek bağlantısı açabilir ve birden çok bağlantı yerine sunucu üzerinden birden çok dosyayı verimli bir şekilde paralel olarak aktarabilir. Ne kadar az bağlantı açılırsa, sunucu ve Googlebot’un tarama için harcayacağı kaynak o kadar az olur.

Sonuç

Şu aşamada http/2 uyumlu olmayan sunucu ve web siteleri olsa dahi zamanla tüm web ortamının bu protokole geçmesi ile birlikte web sitelerinin açılma hızlarında gözle görülür artışlar olacağı kesin. Bu da doğrudan SEO çalışmalarına ve organik performansa etki edecektir.