Basit, alışılmadık ve inanılmaz derecede sıkıcı olan uygulama katmanı HTTP (Hyper Text Transfer Protocol), World Wide Web'in temelini oluşturuyor. HTTP esas olarak dijital iletişimin hızlı, güvenli ve zengin bir yapıda olması için geliştirilmiştir ve siber dünyadaki ağa bağlı kaynakların erişilebilir olmasını sağlamaktadır.
HTTP, World Wide Web'in öncüsü olan ve web sunucuları arasındaki yüksek seviyeli veri iletişimlerini yürüten uygulama protokollerini tasarlayan Tim Berners-Lee tarafından ortaya atılmıştır.
HTTP'nin belgelenen ilk versiyonu 1991'de HTTP0.9 olarak çıktı ve daha sonra 1996'da HTTP1.0'a öncülük etti. 1997'de HTTP1.1, küçük yinelemeli geliştirmelerle bu protokolleri takip etti.
Şubat 2015'te IETF (Internet Engineering Task Force) HTTP çalışma grubu HTTP'yi yeniden düzenledi ve uygulama protokolünün ikinci ana versiyonu olan HTTP/2'yi geliştirdi. Mayıs 2015'te HTTP/2, resmi olarak Google'ın HTTP uyumlu SPYD protokolü için bir standart haline geldi.
HTTP/2 ve HTTP1 tartışması "Protokol" teriminin kendisiyle yürütülmelidir. Bir protokol, istemciler ve sunucular arasındaki veri iletişim mekanizmalarını yürüten bir takım kurallardır.
Protokoller genellikle 3 ana parçadan meydana gelir: Header, Payload ve Footer. Header, Payload olarak adlandırılan kısımdan önce gelir ve Payload'ı ilgilendiren kaynak ve hedef adresi gibi detayları (boyut ve tür gibi) içerir. Payload ise protokol kullanılarak iletilen gerçek bilgileri içerir. Payload'ın ardından gelen Footer da istemci-sunucu isteklerini yönlendiren bir kontrol sahası olarak çalışır.
Bu sistem posta ofisleri ile oldukça benzerlik gösterir. Gönderilecek metin bir zarfa konur (Header). Zarf üzerine gönderi adresi yazılır ve pul yapıştırılır (Footer) daha sonra da postalanır. Tabii yalnızca 0 ve 1'lerden oluşan dijital bilgi iletimleri bu kadar kolay olmuyor.
HTTP protokolü aslında temel komutlardan meydana gelir: İstemciden istenilen bilgiyi sunucudan getir ve yayınla. Oldukça basit ve sıkıcı olan getir ve yayınla komutları diğer ağ protokollerinin de temel yapısını oluştururlar. Protokol, kullanıcı deneyiminin geliştirilmesi ve internetin etkinliğinin artması için zorunlu bir geliştirmedir.
1990'lardaki başlangıç aşamalarından beri HTTP yalnızca birkaç büyük yenilemede görüldü. En son versiyon olan HTTP1.1, yaklaşık 15 yıldır siber dünyaya hizmet ediyor. Dinamik bilgi güncellemeleri olan, yoğun kaynaklı multimedya içerik formatlarna sahip ve web performansına yönelik aşırı eğilim gösteren web sayfaları şu an eski protokol tekniklerine bağlılar. Bu trendler var olan internet deneyiminin geliştirilmesi için önemli HTTP/2 değişiklikleri gerektiriyor. Bu hedeflere -sinyal çoğaltma, sıkıştırma ve istek önceliği gibi teknikler kullanılarak- tarayıcı taleplerindeki gecikme süresi düşürülerek ulaşıldı.
Akış kontrolü, güncelleme ve hata önleyiciler gibi mekanizmalar web geliştiricilerinin yüksek performans ve web uygulamalarında esneklik elde edebilmeleri için HTTP protokolünde geliştirici olarak çalışıyorlar.
Kolektif sistem, web sayfası tarayıcıda tamamen yüklenene kadar, sunucuların devamlı talepleri elemesini ve gelen talepleri daha etkili biçimde cevaplamasını sağlıyor. HTTP/2 ile gelen "Server Push" adı verilen geliştirme ise sunucunun tarayıcı önbelleğinde halihazırda bulunan tam sayfa içeriklerini kullanarak istemcilere cevap verebilmesini mümkün kılıyor. HTTP headerındaki etkili sıkıştırmalar; protokolü mümkün olduğunca basitleştirerek tarayıcı isteklerinde ve sunucu cevaplarında performansı geliştiriyor.
HTTP/2 değişiklikleri HTTP1.1 ile birlikte çalışmayı ve uyumu temel alıyor. HTTP/2'nin gerçek yaşamdaki deneylerle zamanla gelişmesi ve HTTP1.1'e kıyasla performans temelli hataların uzun vadede düzeltilmesi bekleniyor.
HTTP'yi tamamen değiştirmiyoruz, metodlar, durum kodları ve bugün kullandığınız üstbilgi (header) çoğunlukla aynı kalacak. Bunun yerine bunların kullanımını yeniden tanımlayarak internetin çok daha etkili olmasını sağlıyoruz. -Mark Nottingham
Yeni HTTP versiyonunun bir yükseltme olarak geleceğini ve -muhtemelen- yakın zamanda HTTP1.1'in yerini tamamen almayacağını belirtmekte fayda var. HTTP/2 uygulaması, HTTP1.1 'de bulunan bütün şifreleme türlerini otomatik olarak desteklemeyecek fakat yakın gelecekte kesinlikle çok daha iyi alternatiflere veya farklı şifreleme türlerine uyumlu güncellemelere kapı açacaktır. HTTP/2 ve HTTP1 ve SPDY ve HTTP/2 gibi özellik karşılaştırmaları yalnızca performans, güvenlik ve güvenilirlik gibi son uygulama protokollerini içeriyor.
HTTP1.1' de Yanlış Olan Neydi?
HTTP1.1, her bir TCP (Transmission Control Protocol) bağlantısı için yalnızca tek bir önemli isteği işleyebiliyor, birden çok isteği işleyebilmek için tarayıcıları birden çok TCP bağlantısı kullanmaya zorluyordu.
Paralel olarak birden fazla TCP bağlantısı kullanmak TCP kalabalığına sebep oluyordu bu da beraberinde ağ kaynaklarının ölçüsüz biçimde tekelleşmesini getiriyordu. Web tarayıcıları ek istekleri işlemek için birden çok bağlantı kullanıyor ve büyük bir ağ kaynağını işgal ediyordu. Bu durumda diğer kullanıcılar için ağ performansının düzeyini indirgeniyordu.
Tarayıcıdan gelen birden çok istek sorunu aynı zamanda veri iletim ağlarındaki verilerin iki katına çıkmasına sebep oluyordu. Bu durum ise son düğümdeki hataların düzeltilmesi için ek protokoller gerektiriyordu.
İnternet ağları eski HTTP temelli ağ teknolojilerinin kapasitesinin üstüne evrildi. HTTP1.1'in çekirdek kalitesi 10 yıl önce geliştirildi ve bu zaman içinde birçok utandırıcı performans ve güvenlik açığı gösterdi.
Örneğin Cookie Hack; siber suçluların geçmiş oturumu kullanarak hesap şifrelerini elde etmelerine imkan verdi çünkü HTTP1.1 oturumlar için hiçbir kimlik sonlandırma olanağı tanımıyordu. Buna benzer güvenlik sorunları HTTP/2'de devam edecek olsa bile yeni uygulama protokolü çok daha iyi güvenlik geliştirmeleri ile geliyor.
HTTP/2 Uygulama Güncellemeleri
HTTP/2 ile gönderilen çift yönlü metin formatı çerçeveleri sunucu ile istemci arasında "akış" olarak bilinen şeyi değiştirdi. HTTP protokolünün geçmiş tekrarları aynı anda yalnızca bir akışa izin veriyordu ve her bir akış iletiminde gecikmeler yaşanıyordu.
Bireysel akışlarla tek tek alınan tonlarca medya içeriği hem verimsiz oluyor hem de oldukça fazla kaynak tüketiyordu. HTTP/2 değişimleri bu durumu çözmek için ikili çerçeve katmanları getirdi.
Bu katman istemci ile sunucunun HTTP'nin yükünü küçük, bağımsız ve kontrol edilebilir parçalara ayırmasına olanak verir. Daha sonra bu bilgi diğer tarafta tekrar birleştirilir.
İkili çerçeve formatları çoklu, eşzamanlı olarak açık, bağımsız çift yönlü dizilerinin başarılı akışlar arasında gecikme olmadan değiştirilmesine olanak veriyor. Bu yaklaşımın birkaç getirisi var:
Çoklu paralel istekler ve cevaplar birbirini engellemiyor.
Tek bir TCP bağlantısı kullanarak birden çok veri akışı sağlıyor ve ağ kaynaklarını daha etkili biçimde kullanıyor.
Arttırılmış gizlilik, daha hızlı web performansı, daha iyi arama motoru sıralamaları.
HTTP/2, HTTPS ile Nasıl Çalışıyor?
HTTPS, hassas işletme ve tüketici bilgilerini işlemek için, bilgisayarları, makineleri ve sunucuları birbirine bağlayacak ultra güvenli bir ağ oluşturur. Bankalar için finansal işlemler ve sağlık sektörü için hasta kayıtları gibi bilgiler siber suçluların temel hedeflerindendir. HTTPS, devamlı siber suç tehditleri için etkili bir katman görevi görür.
HTTPS yalnızca yüksek profil organizasyonlar ile sınırlı değil ve siber güvenlik; online işletme sahipleri kadar bloggerlar, e-ticaret sitesi sahipleri ve hatta sosyal medya kullanıcıları için de oldukça önemli.
İnternet endüstrisi HTTP1.1'i bir adım öteye taşırken ortalama kullanıcı deneyimi kaygısını da göz önünde bulundurdular. HTTP1.1'den HTTP/2'ye geçiş neredeyse tamamen teknolojinin potansiyelini maksimize etme ve bu kaygıları da göz önünde bulundurma ile ilgiliydi. Çevrimiçi işletme sahiplerinin ve internet kullanıcılarının perspektifinden bakılacak olursa, medya içeriklerinin zenginleşmesi ile internet git gide yavaşlıyor. Çevrimiçi işletmelerin hedef kitlelerine etkili biçimde hitap edebilmeleri ve internet kullanıcılarının web içeriklerine daha hızlı biçimde ulaşabilmeleri için HTTP/2; istemci-sunucu veri iletişimlerinin çok daha etkili olabilmesi için geliştirildi.
Tarih: 2018-09-12 14:49 - 2 ay 5 gün önce
HTTP'nin yeni bir versiyonu için yapılan araştırma ve geliştirmelerin temel amacı 3 nitelik etrafında şekilleniyor: Sadelik, yüksek performans ve dayanıklılık.