Bir makalede HTTP / 2 özelliklerini anlayın

Günümüzde HTTP 1.1, İnternet'teki ana protokol haline geldi. Ancak HTTP protokolünün doğduğu ilk günlerde, basit ve anlaşılır bir protokol olarak kabul edildi. 1996 yılında, HTTP 1.0 spesifikasyonu, RFC 1945'te sadece 60 sayfayla tanımlandı.1999'a kadar, HTTP 1.1, 176 sayfaya büyüyen RFC 2616'da tanımlandı. Ancak, web teknolojisinin hızla gelişmesiyle birlikte. HTTP 1.1, kullanıcıların performans gereksinimlerini karşılayamıyor. O zamandan beri Google, HTTP 1.1'deki iyi bilinen performans sorunlarını çözmek için SPDY protokolünü tanıttı. SPDY, Chrome, Firefox ve Opera tarafından desteklenir ve birçok büyük web sitesi (Google, Twitter, Facebook gibi) uyumlu istemciler için SPDY kullanır. SPDY endüstri tarafından kabul edildikten ve performansı büyük ölçüde artırabildiği kanıtlandıktan sonra, bir standart haline gelme koşullarını çoktan elde etti.

TTP / 2, HTTP 1.1'in 1999'da piyasaya sürülmesinden bu yana HTTP protokolünün ilk güncellemesidir ve esas olarak SPDY protokolüne dayanmaktadır. İnternet Mühendisliği Görev Gücü'nün (IETF) Hypertext Transfer Protocol Bis (httpbis) çalışma grubu tarafından geliştirilmiştir. Kuruluş, HTTP / 2 standart teklifini Aralık 2014'te tartışılmak üzere IESG'ye sundu ve 17 Şubat 2015'te onaylandı. HTTP / 2 standardı resmi olarak Mayıs 2015'te RFC 7540 olarak yayınlandı.

Peki, HTTP / 2'deki belirli değişiklikler nelerdir?

İkili çerçeveleme

Önce birkaç kavramı anlayalım:

  • Çerçeve (çerçeve): HTTP / 2 veri iletişiminin en küçük birimi.
  • Mesaj: HTTP / 2'deki mantıksal HTTP mesajını ifade eder. Örneğin, istek ve yanıt, vb. Mesaj bir veya daha fazla çerçeveden oluşur.
  • Akış (akış): Bağlantıda bulunan bir sanal kanal. Akışlar iki yönlü mesajlar taşıyabilir ve her akışın benzersiz bir tamsayı kimliği vardır.

HTTP / 2, verileri iletmek için HTTP 1.x'in metin biçimi yerine ikili biçim kullanır ve ikili protokol ayrıştırmak için daha verimlidir.

HTTP / 1 isteği ve yanıt mesajları bir başlangıç satırı, bir başlık ve bir varlık gövdesinden (isteğe bağlı) oluşur ve her bölüm bir metin satırı sonu ile ayrılır. HTTP / 2, istek ve yanıt verilerini daha küçük çerçevelere böler ve ikili kodlamayı kullanır.

HTTP / 2'de, aynı alan adı altındaki tüm iletişimler, herhangi bir sayıda çift yönlü veri akışını taşıyabilen tek bir bağlantıda (çoğullamaya dahil edilir) tamamlanır. Her veri akışı bir mesaj biçiminde gönderilir ve mesaj bir veya daha fazla çerçeveden oluşur. Çerçeve başlığındaki akış tanımlayıcısına göre yeniden birleştirilebildikleri için birden çok çerçeve sıra dışı gönderilebilir.

Çoğullama

Çoğullama, orijinal diziyi ve engelleme mekanizmasını değiştirme. Tüm istekler, bir TCP bağlantısı aracılığıyla eşzamanlı olarak yapılır. HTTP 1.x'te, aynı anda birden çok istek göndermek istiyorsanız, birden çok TCP bağlantısı kullanmanız gerekir ve kaynakları kontrol etmek için, tarayıcının ayrıca aşağıdaki şekilde gösterildiği gibi tek bir etki alanı adı için 6-8 sınırı vardır, kırmızı daire içine alınmış istek Alan adı bağlantılarının sayısı limiti aştığı için askıya alındı ve bir süre beklendi:

HTTP / 2'de ikili çerçeveleme ile HTTP / 2 artık çoklu akış paralelliği uygulamak için TCP bağlantılarına güvenmiyor. HTTP / 2'de:

  • Aynı alan adı altındaki tüm iletişimler tek bir bağlantıda tamamlanır.
  • Tek bir bağlantı, herhangi bir sayıda çift yönlü veri akışı taşıyabilir.
  • Veri akışı bir mesaj şeklinde gönderilir ve mesaj bir veya daha fazla çerçeveden oluşur Çoklu çerçeve sıra dışı gönderilebilir çünkü bunlar çerçeve başlığındaki akış tanımlayıcısına göre yeniden birleştirilebilirler.

Bu özellikle, performans büyük ölçüde artacaktır çünkü:

  • Aynı etki alanı adının yalnızca tek bir TCP bağlantısını işgal etmesi gerekir, bu da birden çok TCP bağlantısının neden olduğu gecikme ve bellek tüketimini ortadan kaldırır.
  • İstekler ve yanıtlar birbirine karışmadan tek bir bağlantıya paralel olarak serpiştirilebilir.
  • HTTP / 2'de, her istek 31 bitlik bir öncelik değeri taşıyabilir, 0 en yüksek öncelik anlamına gelir, değer ne kadar büyükse öncelik o kadar düşüktür. Bu öncelik değeri ile, istemci ve sunucu farklı akışları işlerken farklı stratejiler benimseyebilir ve akışları, mesajları ve çerçeveleri en uygun şekilde gönderebilir.

Sunucu itme

Sunucu, tarayıcının karşılık gelen konuma ayrıştırmasını beklemek yerine, HTML sayfasını gönderirken diğer kaynakları etkin bir şekilde itebilir, bir istek başlatabilir ve ardından yanıt verebilir. Örneğin, sunucu, istemcinin bu istekleri göndermeden önce HTML'yi ayrıştırmasına gerek kalmadan JS ve CSS dosyalarını istemciye etkin bir şekilde gönderebilir. Sunucu aktif olarak itebilir ve müşteri bunu alıp almayacağını seçme hakkına sahiptir. Sunucu tarafından itilen kaynak tarayıcı tarafından önbelleğe alınmışsa, tarayıcı bir RST_STREAM çerçevesi göndererek bunu reddedebilir. Aktif itme aynı zamanda aynı kaynak ilkesiyle uyumludur ve sunucu üçüncü taraf kaynaklarını istemciye rasgele itmeyecektir.

Üstbilgi sıkıştırma

HTTP 1.1 isteklerinin boyutu gittikçe büyür, bazen TCP penceresinin ilk boyutundan bile daha büyük olur çünkü gönderilmeden önce ACK ile yanıtın dönmesini beklemeleri gerekir. HTTP / 2, ileti başlığını sıkıştırmak için HPACK'i (http2 başlıkları için özel olarak tasarlanmış bir sıkıştırma biçimi) kullanır ve bu, ileti başlığının işgal ettiği ağ trafiğini kaydedebilir. Bununla birlikte, her HTTP / 1.x isteği, çok fazla bant genişliği kaynağını boşa harcayan çok sayıda yedek başlık bilgisi taşır.

Her HTTP iletişimi, iletişimin kaynaklarını, tarayıcı özniteliklerini, çerezleri vb. Açıklamak için kullanılan bir dizi başlık içerir.

Bu ek yükü azaltmak ve performansı artırmak için, HTTP / 2 şu başlıkları sıkıştıracaktır:

  • HTTP / 2, önceden gönderilen anahtar / değer çiftlerini izlemek ve depolamak için istemci ve sunucuda "başlık tablolarını" kullanır.Aynı veriler için artık her istek ve yanıt aracılığıyla gönderilmez;
  • Başlık tablosu, HTTP / 2 bağlantısı süresince her zaman mevcuttur ve istemci ve sunucu tarafından birlikte kademeli olarak güncellenir;
  • Her yeni başlık anahtar / değer çifti, geçerli tablonun sonuna eklenir veya tablodaki önceki değerin yerini alır.

Örneğin: aşağıdaki şekilde yer alan iki istekte, ilk istek tüm başlık alanlarını gönderir ve ikinci istek yalnızca, fazlalık verileri ve ek yükü azaltabilen fark verilerini göndermeye ihtiyaç duyar.

Pratik bir örneğe bakalım, aşağıdaki, WireShark tarafından yakalanan Google ana sayfasına erişmek için bir pakettir:

Yukarıdaki resim, https://www.google.com/ adresini ziyaret ederek elde edilen ilk talebin başlığıdır. Toplam 437 bayt alan kaplayan başlığın içeriğini görebilirsiniz. Başlıkta çerezi seçiyoruz ve görebilirsiniz Tanımlama bilgisi toplam 118 baytlık bir alanı kaplar. Sonra ikinci isteğin başlığına bakarız:

Yukarıdaki şekilden de görebileceğiniz gibi, başlık sıkıştırması sayesinde, ikinci istekteki tanımlama bilgisi yalnızca 1 baytlık bir yer kaplar.Değiştirilen Kabul Et alanına bir göz atalım:

Kabul Et alanı İstek 1'deki içerikten farklı olduğu için sunucuya gönderilmesi gerekir, bu nedenle 29 bayt yer kaplar.

Not: İşte akamai'nin HTTP / 2 demo bağlantısı, ilgileniyorsanız, görmek için lütfen tıklayın: https://http2.akamai.com/demo

Tarayıcı ve ağ hizmeti desteği: http2 destek listesi

Sonuç

Youpaiyun CDN şu anda tüm platformlarda HTTP / 2'yi desteklemektedir ve varsayılan olarak etkindir. Ve HTTP / 2 HTTPS protokolü temelinde uygulandığından, YouPaiyun'un HTTPS hızlandırma hizmetinin etki alanı adını kullandığınız sürece, herhangi bir özel yapılandırma olmadan HTTP / 2 hizmetinden ücretsiz olarak yararlanabilirsiniz. HTTPS'yi etkinleştirmek için, karmaşık prosedürler olmadan yalnızca sertifika uygulamasını ve yönetimini tamamlamanız ve web sitelerinin ve web uygulamalarının HTTPS şifreleme dağıtımını kolayca gerçekleştirmeniz gerekir.

Ren Jialun'un "Under the Brocade" grevi ve yayın platformu inanılmaz Netizenler: sonunda sizi bekliyor!
önceki
"Ace vs. Ace" dahili sohbet kayıtları açılır, önemli anları bulmak için sohbet kayıtları
Sonraki
Xi Jinping, "iki endişe yok ve üç garanti" gibi çözülmemiş sorunların çözümüne yönelik bir sempozyuma başkanlık etti.
39 yaşındaki 'Bayan Fan' hala güzel 'Pembe Kız'
Yantai'deki böcekler yanıyor, dağlar ve ovalar böcekleri yakalıyor, böceklerden çok araba var.
Penglai Harikalar Diyarı "bir kapıdan girip bir bilet almak" için veda ediyor! Manzaralı noktanın "görünmez duvarı" yıkıldı
Hengshui, Hebei: Yetişkinler için Gençlik Töreni
Xiling Yinshe'nin arkasında, bilinmeyen bir aile var: İlk nesil Hunan Ordusunda ünlü bir general olan Peng Yulin'in personeli olabilir.
Tayvan ordusu Halk Kurtuluş Ordusu'na "karşı" gelebileceğini söyledi, Tayvan netizenler güldü
"Üç Yüz Bahçe", Baicao Bahçesi, Çin tıbbı kültürünü yaydı
Güvenlik liderine tutun! Lingang Bölgesi güvenli üretim dizisini sıkılaştırıyor
36 yaşındaki Kate ve 37 yaşındaki Megan, kayınvalideleri Prenses Diana'yı ayrıntılarla anma konusunda ustaydı!
Decheng Bölgesi, Xinhua Caddesi'ndeki artan yol ağı inşaatı, şehrin kan hattını yumuşattı
Anhui Shexian Halk Kültürü Festivali başlıyor: Hükümet, çiftçilerin folklor yapmaları için bir sahne hazırlıyor, konukları yeniden canlandırmayı teşvik etmek için karşılıyor
To Top