HTTP / 2'ye giriş

Giriş

HTTP / 2, Üstmetin transfer protokolü veya HTTP [01], tarayıcılar tarafından web sunucularıyla iletişim kurmak için kullanılır. Eski SPDY'den türetilmiştir [02] protokol, HTTP / 2, HTTP / 1.1'in 2068'de RFC 1997'de standartlaştırılmasından bu yana HTTP'nin ilk yeni sürümüdür.

İnternet Mühendisliği Görev Gücü (IETF) HTTP çalışma grubu tarafından geliştirilmiştir. httpbis ("bis", "iki kez" anlamına gelir) ve RFC 7540 olarak yayınlanır [03] Mayıs 2015 içinde.

HTTP / 2 uyarlaması

HTTP / 2, resmi yayınlarından bu yana çalışan web siteleri tarafından giderek daha fazla kullanılmaktadır. Çevrimiçi anket hizmeti W3Techs [04] Eylül 2017'den Eylül 2018'e kadar HTTP / 2 desteğinin izlenen tüm web sitelerinin% 16'dan% 30'una yükseldiğini belirtiyor.

Ayrıca, büyük tarayıcılar (ör. Chrome, Firefox, Edge, vb.) Zaten HTTP / 2 için tam destek sağlar [05]. (Hatta bazıları HTTP / 2 standart olarak kabul edilmeden önce deneysel uygulamalar geliştirmiştir.)

Bu yaygın kabul, HTTP / 2'nin Web'in fiili iletişim protokolü olma potansiyeline sahip olduğu anlamına gelir.

HTTP / 2'nin arkasındaki motivasyon

httpbis'charter [06] HTTP / 1.1 için motivasyon olarak geliştirilebilecek çeşitli HTTP / 2 bileşenlerinden bahseder. Bununla birlikte, grubun birincil hedefi, son kullanıcı tarafından algılanan gecikmeyi azaltmaktı.

Bunu yapmak için, httpbis üstbilgi sıkıştırma ve agresif ön getirme teknikleri (örn. sunucu itme) yoluyla bant genişliği ek yükünü en aza indirirken, aynı zamanda bağlantı tıkanıklığı ve Hat Başı (HoL) engelleme sorunu gibi bilinen performans sorunlarını sistematik olarak ele almaya çalışırken [07].

Ayrıca, HTTP / 2'nin geriye dönük olarak uyumlu olması gerekiyordu, yani HTTP / 1.1'de bulunan aynı yöntem fiillerini, durum kodlarını, URI'leri ve (çoğu) başlık alanlarını kullanmak zorundaydı. HTTP / 2'nin ayrıca masaüstü ve mobil web tarayıcıları, programlama arabirimleri, proxy'ler ve güvenlik duvarları gibi yaygın HTTP kullanım durumlarını destekleyecek şekilde tasarlanması gerekiyordu.

Bu uyumluluğu korumak için, çalışma grubu, istemcilerin ve sunucuların HTTP / 1.1, HTTP / 2 ve hatta HTTP olmayan protokoller arasından seçim yapmasına izin verecek bir protokol müzakere mekanizması geliştirdi.

Peki HTTP / 2'deki yenilikler nelerdir?

HTTP / 2, HTTP / 1.1'de kullanılan URI şemalarını ve bağlantı noktası numaralarını hala kullanıyor (ör. http URI'ler ve bağlantı noktası 443 https URI'ler), ancak birçok şey kaputun altında farklı şekilde yapılır.

En temel değişiklik, Çerçeve HTTP / 2'nin temel veri birimi olarak.

HTTP / 1.1 geleneksel olarak kullanır paketler ağ verilerini temsil etmek. İstemci, yöntem fiili olan bir istek paketi oluşturur (ör. GET or POST), bağlantıyı açıklayan bir başlık listesi ve uygulama verilerini içeren bir gövde ekler.

Bir istek paketi alındığında, bir HTTP / 1.1 sunucusu istenen bilgileri içeren benzer bir yanıt paketiyle yanıt verir. Sonuç olarak, her istek ve yanıt döngüsü yeni bir bağlantı gerektirir.

Bunun tersine, HTTP / 2 istemcileri, sunucuyla sonraki tüm ağ iletişimleri için kullandıkları tek bir ağ bağlantısı kurar. Üstbilgiler, kullanıcı verileri, hata mesajları ve bu tür bilgiler ağ üzerinden iletilmeden önce çerçeveler olarak adlandırılan farklı ikili veri yapılarına paketlenir.

Bu küçük bir değişiklik gibi görünüyor, ancak önemli sonuçlar taşıyor.

Üstbilgi sıkıştırma

Çerçeveleri kullanmanın en büyük yararı, HTTP / 2 başlıklarının bir HEADER normal sıkıştırma yöntemleri kullanılarak sıkıştırılabilen çerçeve. Üstbilgiler herhangi bir veriden önce aktarılmalıdır, böylece üstbilgi sıkıştırması HTTP / 2 tarafından uygulanan bant genişliği ek yükünü azaltabilir.

Başlık sıkıştırması, aşağıdaki performansı geliştiren HTTP / 2 özellikleriyle birlikte, en az ağ kullanımının gerekli olduğu mobil veya nesnelerin interneti (IOT) uygulamalarında özellikle yararlı olabilir.

Akımlar ve çoğullama

Anlamsal olarak alakalı çerçevelerin bağımsız bir dizisine bir dere. Akışlara, onları oluşturan son nokta (yani istemci veya sunucu) tarafından benzersiz bir tanımlayıcı atanır, böylece diğer uç noktaların bunlar arasında ayrım yapması sağlanır.

Uç noktalar, aynı HTTP / 2 bağlantısı üzerinden birkaç akıştan kareler arasına serpiştirerek, tek bir ağ bağlantısının aynı anda birden çok açık akışı desteklemesine izin verir. çoğullama [08].

Aynı bağlantının yeniden kullanılması, bağlantı sıkışıklığı ve daha önce bahsedilen HoL sorunu gibi sorunları azaltır ve önceki HTTP sürümlerinden daha iyi performans ve daha sorunsuz kullanıcı deneyimi sunar.

Akış bağımlılığı ve önceliklendirme

Birden fazla eşzamanlı akışı yönetmek, bazı akışların diğerlerinden önce işleneceği anlamına gelir. HTTP / 2, geliştiricinin (veya yöneticinin) bu davranışa ince ayar yapmasına izin verir. akış bağımlılığı.

Bir akış, işlenmeden önce başka bir akışın tamamen aktarılmasına bağlı olabilir. Örneğin, bir web sayfasının ana içeriğinin benzer içerik için herhangi bir öneriden önce yüklenmesi gereken bir sitede, HTTP / 2, öneri akışının ana içerik akışına bağlı olarak oluşturulmasına izin verir.

HTTP / 2 de destekler akış önceliği. Yani, her akışa, uç noktaların akışın çerçevelerini işlemek için kaynakları ne kadar acil olarak ayırması gerektiğini önermek için bir öncelik atanabilir.

Önceliklendirme ve akış bağımlılığı, geliştiricilerin ve web sitesi sahiplerinin sitelerinin ağ kullanımını optimize etmelerine yardımcı olur ve bu da sitelerinin kullanıcı deneyimini önemli ölçüde iyileştirebilir.

Sunucu itin

Son olarak, HTTP / 2 "push" işlevi sağlayarak bir web sitesinin performansını artırabilir. Bir HTTP / 2 web sunucusu, istemcinin başlangıçta talep ettiğinden daha fazla sorgu için veriyle yanıt verebilir. Bu, sunucunun, tarayıcının ilk yanıtı incelemesini beklemeden ve dolayısıyla ek bir istek döngüsünün ek yükü olmaksızın bir web tarayıcısının bir sayfayı oluşturması gerektiğini bildiği verileri sağlamasına olanak tanır.

Sunucu aktarımı, geliştiricilere bir tarayıcının web sitelerini oluşturması için gereken istek sayısı üzerinde tam kontrol sağlar. Doğru kullanıldığında, bu özellik ağ ek yükünü en aza indirebilir.

Doğal olarak, itme özelliğinin yanlış kullanımı da gerçekte gerekenden daha fazla bant genişliği harcayabilir. Bu nedenle, HTTP / 2 bir istemcinin ilk bağlantı kurulurken sunucu pushunun devre dışı bırakılmasını istemesine izin verir.

HTTP / 2 Güvenliği

Bu noktaya kadar okuduysanız, HTTP / 2 geliştiricilerinin performansı iyileştirmek için gerçekten çaba sarf ettikleri açık olmalıdır. Ancak, HTTP / 2'nin genel olarak tarayıcı kullanıcılarının güvenliğini artırmaya da yardımcı olabileceği unutulmamalıdır.

Daha spesifik olarak, HTTP / 2 hem HTTP URI'leri (yani şifreleme olmadan) hem de HTTPS URI'leri (üzerinden TLS şifreli kanallar). Standardın kendisi şifreleme kullanımını gerektirmemesine rağmen, tüm önemli tarayıcı uygulamaları (yani Firefox) [09], Chrome, Safari, Opera, IE, Edge) bir tek HTTP / 2 üzeri desteği TLS.

Aslında, tarayıcılar şifrelenmiş HTTP / 2 ve HTTP / 2'yi şifreli olarak ayırır TLS iki farklı protokol olarak. Şifreli HTTP / 2 denir h2 ve açık metin h2c. Bu yazı itibariyle, hiçbir büyük tarayıcı desteklemiyor h2c , Bunun anlamı bu TLS HTTP / 2'nin diğer avantajlarından yararlanmak için bir web sitesi için şifreleme zorunludur. Dolayısıyla, HTTP / 2 varsayılan web ağı protokolü haline geldiğinde, henüz SSL'ye yükseltmemiş eski web sitesi sahipleri /TLS, sonunda bunu yapmak için güçlü bir şekilde motive edilecektir.

Sonuç

HTTP / 2'nin yaygın olarak benimsenmesi yeni ve geliştirilmiş bir Web sağlayacaktır. Daha hızlıdır, daha az bant genişliğine ihtiyaç duyar ve web sitelerinin güvenli kalmasına yardımcı olur. Genel olarak benimsenmesi, genel web kullanıcı deneyimini daha pürüzsüz ve daha güvenli hale getireceğinden emin.

Bugün bir sertifika alın ve gelecekte bize katılın.

Referanslar

  1. HTTP protokolü
  2. SPDY protokolü
  3. HTTP / 2 özellikleri
  4. W3Techs HTTP / 2 benimseme anketi
  5. Tarayıcılarda HTTP / 2 uyarlaması
  6. httpbis tüzüğü
  7. HOL Engelleme
  8. çoğullama
  9. HTTP / 2'de Firefox

SSL.com'un Bültenine abone olun

SSL.com'dan yeni makaleleri ve güncellemeleri kaçırmayın

Haberdar Olun ve Güvende Kalın

SSL.com Siber güvenlik alanında küresel bir lider olan PKI ve dijital sertifikalar. En son sektör haberlerini, ipuçlarını ve ürün duyurularını almak için kaydolun SSL.com.

Geri bildiriminizi almak isteriz

Anketimize katılın ve son satın alma işleminizle ilgili düşüncelerinizi bize bildirin.