Úvod do HTTP / 2

Úvod

HTTP / 2 je nejnovější revizí HyperText Transfer Protocol nebo HTTP [01], který prohlížeče používají ke komunikaci s webovými servery. Pochází ze starší SPDY [02] Protokol HTTP / 2 je první nová verze HTTP od standardizace HTTP / 1.1 v RFC 2068 v roce 1997.

Byl vyvinut pracovní skupinou Internet Engineering Task Force (IETF) HTTP httpbis (kde „bis“ znamená „dvakrát“) a publikováno jako RFC 7540 [03] v květnu 2015.

Přijetí HTTP / 2

Protokol HTTP / 2 byl od oficiálního zveřejnění stále více používán pracovními webovými stránkami. Služba online průzkumu W3Techs [04] konstatuje, že od září 2017 do září 2018 vzrostla podpora HTTP / 2 ze 16% na 30% všech sledovaných webových stránek.

Kromě toho hlavní prohlížeče (např. Chrome, Firefox, Edge atd.) Již poskytují plnou podporu pro HTTP / 2 [05]. (Některé dokonce vyvinuly experimentální implementace před přijetím protokolu HTTP / 2 jako standardu.)

Toto rozšířené přijetí znamená, že HTTP / 2 má potenciál stát se de facto komunikačním protokolem webu.

Motivace za HTTP / 2

Httpbis'charta [06] zmiňuje několik komponent HTTP / 1.1, které lze vylepšit jako motivaci pro HTTP / 2. Primárním cílem skupiny však bylo snížit latenci vnímanou koncovým uživatelem.

Udělat toto, httpbis uvažuje o minimalizaci režie šířky pásma pomocí komprese záhlaví a agresivních technik předběžného načítání (např. server push), přičemž se zároveň snaží systematicky řešit známé problémy s výkonem, jako je přetížení připojení a problém blokování Head-of-Line (HoL) [07].

Kromě toho bylo vyžadováno, aby HTTP / 2 byl zpětně kompatibilní, což znamená, že musel používat stejná metodická slovesa, stavové kódy, URI a (nejvíce) pole záhlaví nalezená v HTTP / 1.1. HTTP / 2 také musel být navržen tak, aby podporoval běžné případy použití HTTP, jako jsou stolní a mobilní webové prohlížeče, programovací rozhraní, proxy a firewally.

Aby byla zachována tato kompatibilita, pracovní skupina vyvinula mechanismus vyjednávání protokolů, který by klientům a serverům umožňoval výběr mezi protokoly HTTP / 1.1, HTTP / 2 nebo dokonce protokoly HTTP.

Co je tedy nového v HTTP / 2?

HTTP / 2 stále používá stejná schémata URI a čísla portů jako v HTTP / 1.1 (tj. Port 80 pro http URI a port 443 pro https URI), ale mnoho věcí se dělá pod kapotou odlišně.

Nejzásadnější změnou je zavedení rámy jako základní datová jednotka HTTP / 2.

HTTP / 1.1 se tradičně používá pakety reprezentovat síťová data. Klient vytvoří paket požadavku pomocí slovesa metody (např GET or POST), připojením seznamu záhlaví popisujících připojení a těla obsahujícího data aplikace.

Po přijetí paketu požadavku server HTTP / 1.1 odpoví podobným paketem odpovědí obsahujícím požadované informace. Výsledkem je, že každý cyklus požadavků a odpovědí vyžaduje nové připojení.

Klienti HTTP / 2 naopak navazují jediné síťové připojení k serveru, které používají pro veškerou následnou síťovou komunikaci. Záhlaví, uživatelská data, chybové zprávy a jakékoli takové informace jsou před přenosem po síti zabaleny do odlišných binárních datových struktur nazývaných rámce.

Vypadá to jako malá změna, ale má to významné důsledky.

Komprese záhlaví

Velkou výhodou použití rámců je to, že hlavičky HTTP / 2 jsou zabaleny do HEADER rám, který lze komprimovat pomocí běžných metod komprese. Záhlaví musí být přenesena před jakýmkoli datem, takže komprese záhlaví může snížit režii šířky pásma uloženou HTTP / 2.

Komprese záhlaví spolu s následujícími funkcemi zlepšujícími výkon HTTP / 2 mohou být zvláště užitečné v aplikacích pro mobilní zařízení nebo internet (IOT), kde je vyžadováno minimální využití sítě.

Proudy a multiplexování

Nezávislá posloupnost sémanticky relevantních rámců se nazývá a proud. Potokům je přiřazen jedinečný identifikátor koncovým bodem (tj. Klientem nebo serverem), který je vytvořil, takže mezi nimi mohou rozlišovat další koncové body.

Koncové body mohou prokládat rámce z několika toků přes stejné připojení HTTP / 2, což umožňuje jediné připojení k síti podporovat více současně otevřených toků. Tento proces se nazývá multiplexování [08].

Opakované použití stejného připojení zmírňuje problémy, jako je přetížení připojení a problém HoL zmíněný výše, a nabízí lepší výkon a plynulejší uživatelské prostředí než předchozí verze HTTP.

Závislost proudu a stanovení priorit

Správa více souběžných toků znamená, že některé toky budou zpracovány před ostatními. HTTP / 2 umožňuje vývojáři (nebo správci) toto chování doladit pomocí funkce nazvané závislost na proudu.

Tok může záviset na úplném přenosu jiného proudu, než bude zpracován. Například na webu, kde by měl být hlavní obsah webové stránky načten před doporučeními pro podobný obsah, HTTP / 2 umožňuje vytvoření proudu doporučení v závislosti na hlavním proudu obsahu.

Podporuje také HTTP / 2 prioritizace proudu. To znamená, že každému streamu lze přiřadit prioritu, která navrhne, jak urgentně by koncové body měly přidělit prostředky pro zpracování rámců streamu.

Stanovení priorit a závislost na streamování pomáhají vývojářům a vlastníkům webových stránek optimalizovat využití sítě jejich stránek, což může výrazně zlepšit uživatelský komfort jejich stránek.

Server Push

A konečně, HTTP / 2 může zlepšit výkon webu tím, že poskytuje „push“ funkčnost. Webový server HTTP / 2 může reagovat daty na více dotazů, než si klient původně vyžádal. To umožňuje serveru dodávat data, o kterých ví, že webový prohlížeč bude muset vykreslit stránku, aniž by čekal, až prohlížeč prozkoumá první odpověď, a tedy bez režie dalšího cyklu požadavků.

Server push poskytuje vývojářům úplnou kontrolu nad počtem požadavků, které prohlížeč potřebuje k vykreslení svých webových stránek. Při správném použití může tato funkce minimalizovat režijní náklady na síť.

Přirozeně, zneužití funkce push může také plýtvat větší šířkou pásma, než je ve skutečnosti nutné. Z tohoto důvodu HTTP / 2 umožňuje klientovi požádat o deaktivaci push serveru při prvním vyjednávání připojení.

Zabezpečení HTTP / 2

Pokud jste dočetli až do tohoto bodu, mělo by být jasné, že vývojáři protokolu HTTP / 2 skutečně usilovali o zlepšení výkonu. Je však třeba poznamenat, že protokol HTTP / 2 může také pomoci celkově zlepšit zabezpečení uživatelů prohlížeče.

Konkrétněji je HTTP / 2 definován jak pro URI HTTP (tj. Bez šifrování), tak pro HTTPS URI (přes TLS šifrované kanály). I když samotný standard nevyžaduje použití šifrování, všechny hlavní implementace prohlížeče (tj. Firefox [09], Chrome, Safari, Opera, IE, Edge) se rozhodli, že budou 👔 podpora HTTP / 2 přes TLS.

Prohlížeče ve skutečnosti rozlišují mezi čistým textem HTTP / 2 a HTTP / 2 přes šifrované TLS jako dva různé protokoly. Volá se šifrovaný HTTP / 2 h2 a jasný text h2c. Od tohoto psaní žádný z hlavních prohlížečů nepodporuje h2c , Což znamená, že TLS šifrování je pro webovou stránku povinné, aby bylo možné využít dalších výhod protokolu HTTP / 2. Když se tedy protokol HTTP / 2 stane výchozím protokolem webové sítě, starší vlastníci webových stránek, kteří dosud neupgradovali na SSL /TLS, budou silně motivováni, aby tak nakonec učinili.

Proč investovat do čističky vzduchu?

Rozsáhlé přijetí protokolu HTTP / 2 přinese nový a vylepšený web. Je rychlejší, vyžaduje menší šířku pásma a pomáhá webovým serverům zůstat v bezpečí. Jeho přijetí v hlavním proudu zajistí, aby byl celkový dojem uživatelů webu plynulejší a bezpečnější.

Získejte certifikát ještě dnes a připojte se k nám v budoucnu.

Reference

  1. Protokol HTTP
  2. Protokol SPDY
  3. Specifikace HTTP / 2
  4. Průzkum adopce W3Techs HTTP / 2
  5. Přijetí HTTP / 2 v prohlížečích
  6. httpbis charta
  7. Blokování HOL
  8. Multiplexing
  9. Firefox na HTTP / 2

Přihlaste se k odběru zpravodaje SSL.com

Nenechte si ujít nové články a aktualizace z SSL.com

Zůstaňte informováni a zabezpečte se

SSL.com je světovým lídrem v oblasti kybernetické bezpečnosti, PKI a digitální certifikáty. Přihlaste se k odběru nejnovějších zpráv z oboru, tipů a oznámení o produktech SSL.com.

Budeme rádi za vaši zpětnou vazbu

Vyplňte náš průzkum a sdělte nám svůj názor na váš nedávný nákup.