Anasayfa Makale Neden HTTP/3’e Geçmelisiniz?

Neden HTTP/3’e Geçmelisiniz?

Bu yazımızda HTTP/3’e neden geçilmesi gerektiğini ve getirdiği yenilikleri aktarıyoruz. Ayrıca hem kullanıcılar hem de geliştiriciler için  avantajlarına değineceğiz.

Daha öncesinde HTTPS nedir, SSL sertifikası ne işe yarar yazımızda HTTP protokolünün ne olduğuna detaylıca değinmiştik. Bu yazımızda ise TTP’nin sürümlerinden, her sürümü ile getirdiği yeniliklerden ve neden HTTP/3 sürümüne geçilmesi gerektiğinden bahsedeceğiz. HTTP ve HTTPS protokolleri hakkında temel bilgi edinmek isterseniz, yazmış olduğumuz makaleye göz atabilirsiniz ancak yine de özet geçelim.

Bilindiği üzere internet dediğimiz şey birbirine bağlı milyarlarca cihazdan, sunucudan oluşan bir yapı. Günümüzde bizim internet anlamında kullandığımız sabal dünyada ise çeşitli web siteleri bulunuyor. Örneğin, Technopat.net değerli okurlarına teknoloji alanında yeni ve doğru bilgiler ulaştırmayı hedefleyen bir yayın. Sizler bu yazıya okumak için tıkladığınızda, tarayıcınız birtakım protokoller yardımıyla istemci tarafına isteği iletiyor. Web sunucuları ise istekleri işleyip tarayıcıya birtakım veriler gönderiyor. Tarayıcı tarafından bu verilerin işlenmesi sonucunda ise karşımızda sayfamız beliriyor.

İşte bu yayın, HTTP dediğimiz HyperText Transfer Protocol yardımıyla gerçekleşiyor. WorldWideWeb yani WWW projesi kapsamında CERN laboratuvarlarında geliştirilen bu protokol, web sitelerinin en temelinde bulunan önemli yapılardan biri. HTTP, bu veri aktarımı için TCP’den yararlanır. Her web sunucusu ile sunucuya istekte bulunan istemcilerin (bilgisayarların) bir IP adresi vardır. Veriler de bu adresler sayesinde hedefini bulabilir. İletişim kabaca bu şekilde gerçekleşir.

Network dünyasına belirli bir standart kazandırmak üzere geliştirilen OSI katmanlarının “application-level” yani uygulama katmanında bulunan HTTP, çeşitli web sunucu yazılımlarının çeşitli yapılandırmalarla kullanılmasıyla gelen istekleri farklı zamanlarda işleyebilir. HTTP, aynı zamanda bir uygulama olduğundan güncellenebilir bir yapıya sahip. Bu nedenle dönemin ihtiyaçlarına göre çeşitli sürümleri ortaya çıkmış denilebilir.

İlk web sitesine ait ilk HTTP sunucu bilgisayarı. Yer: CERN

HTTP/1.0 ve 1.1

1989’da geliştirilmeye başlanılan HTTP’nin birinci sürümü olan RFC 2068 ile 1997 yılında belgelenen HTTP/1, 1.1 dönemine göre daha çok tarayıcı ve bilgisayar dostu bir yapıya sahipti. Bu sürüm aldığı istekler ve yanıtlar bakımından üst başlıklarda (header) çeşitli meta bilgileri, HTTP sürümü ve içerikleri barındıran bir yapının yanı sıra GET, HEAD ve POST terimlerinin desteğini içinde bulunduruyordu. İsteklerin yapılıp yanıtlanmasından hemen sonra bağlantı sonlandırılmaktaydı.

HTTP/1.0 sürümünün asıl sorunu olan head-of-line block problemi yüzünden gelen isteği tamamlamadan diğer isteği alamıyordu. Bildiğiniz üzere web siteleri çeşitli kaynakları ve kod yapılarını içerir. Bu yapıların yüklenmesi HTTP/1.0 sürümündeki head-of-line block yüzünden oldukça uzuyordu.

Web 2.0 uygulamalarının yavaş yavaş ortaya çıktığı dönemlerde bu kadar gecikmeli bir yapı çok verimli olmadığı için HTTP/1.1 sürümü ortaya çıktı. Yeni sürümde yeni istekler için birbirinin beklenmesine gerek kalmaması için ardışık bir istek düzeni kullanılarak problem çözüldü.

HTTP/2

HTTP/2, 2015 yılında RFC 7540 ile yayınlanan, şu anda günümüzde birçok sitede kullanılan, adeta standart konumunda olan HTTP sürümüdür. Bu sürümde bir bağlantı üzerinde web sunucusuna üst üste ve aynı anda yapılan isteklere yanıt verilebilir. Bunun getirisi kadar bir diğer götürüsü de ağdaki tıkanıklık yüzünden istekler ve yanıtlar yaşanan paket kaybından etkilenebilmekte. TCP protokolü bu sürümde baytlar halindeki veri akışını uç noktalar arasında sağlar. Bağlantıda yaşanabilecek sorunlar yüzünden bu aktarım esnasında çeşitli baytlar bozulabilir veya kaybolabilir. Yaşanan kaybı ve bozulmayı düzeltmek için TCP isteği yeniden sağlayarak sorunun çözülmesini sağlar.

İsteğin yeniden sağlanması yüzünden iletişim esnasında çeşitli gecikmeler ve yavaşlıklar meydana gelebilir. Aslında bu bir nevi HTTP 1.0 sürümünde yaşanan head-of-line block sorununa benzerdir.

HTTP/3

Günümüzde HTTP/2’nin yerine gelmesi planlanan HTTP sürümüdür. Bu sürümde head-of-line block sorununun tamamen ortadan kaldırılması hedeflenir. Böylece daha gecikmesiz, daha hızlı ve istekleri daha iyi işleyip yanıt verecek bir bağlantının oluşturulmasını amaçlar. Diğer HTTP sürümlerinin aksine iletişim için TCP’den yararlanmaz, bunun yerine çok daha yeni olan QUIC (Quick UDP Internet Connections) denilen bir veri taşıma katmanı kullanılır. QUIC’in varsayılan olarak şifreli bir yapıya sahip olması nedeniyle, HTTP/3 kullanılması durumunda hem daha güvenli hem de daha hızlı bir şekilde web sitelerine erişebileceğiz.

Bu yeni standart ile HTTP protokolünde TCP ile TLS şifrelemesinin değiştirilmesi planlanmakta. Büyük ve önde gelen bulut sağlayıcılarından olan CloudFlare, HTTP/3’ün şu avantajlarına değinir:

  • Yeni header sıkıştırması QPACK
  • Kendinden gelen güvenlik
  • Head-of-line block sorunu yok
  • UDP Performansı
  • Deflecting Reflection

Bu yeni HTTP standardı ile artık bizleri daha hızlı ve verimli web sitelerinin beklediğini söyleyebiliriz. Bu sürümde HTTP protokolünün birçok sorunu giderilmiş, TCP’nin terk edilmesi ile Head-of-line blocking sorunun çözülmesi nedeniyle web siteleri için performans anlamında çok daha fark katacağı biliniyor.

Peki bir web geliştirici olarak neden HTTP/3’e geçmeliyim?

Bunun cevabı aslında oldukça basit. En temelde TCP’den QUIC’e geçilmesinin getirdiği avantajları sırasıyla burada saymaya başlayabiliriz.

Bu avantajların başında düşük gecikme yatar. Örneğin Google’ın yaptığı bir araştırmaya göre QUIC kullanılması durumunda YouTube’da yüklenme süresi yüzde 15, arama sonuçlarının ise yüzde 3.6 daha hızlandığı ortaya çıkmış. Ayrıca eskiden ağlar arasında yapılan geçişlerin hız üzerinde az da olsa bir etkisi mevcuttu. QUIC’in gelişi ile artık bu durum ortadan kalktı.

Bağlantılarda sağlanan el sıkışmaları artık daha verimli şekilde optimize edildi. QUIC ile birlikte bir bağlantıda iki veya daha fazla el sıkışma desteklemek yerine tek el sıkışma yeterli hale gelir. Bu nedenle ortada bir iletişim söz konusu ise aktif bağlantı süresi artar. Bütün bunların dışında önceki HTTP sürümlerinde bulunan head-of-line blocking problemi çözüme kavuşmuştur.

Sonuç

Bu yazıda HTTP sürümlerinden, çıkan yeni sürümler ve standartlar ile gelen yeniliklerden bahsettik. Bununla beraber web sitelerinin neden HTTP/3 sürümüne geçmesi gerektiğine de değindik. Halihazırda birkaç web sunucusu ve bulut sağlayıcısı HTTP/3 destekliyor. Technopat olarak biz de uzun zamandır bu protokolü kullanıyoruz. Sizin de daha hızlı web siteleri oluşturmak ve eski sürümlerin gecikmelerinden kurtulmak için yeni standartları eskiye tercih etmenizde yarar var.

2 Yorumlar

Bir yanıt bırak

Please enter your comment!
Please enter your name here

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

Exit mobile version