Sobes.tech
Middle

V čem se liší protokoly HTTP/1 a HTTP/2?

sobes.tech AI

Odpověď od AI

Hlavní rozdíly mezi HTTP/1.1 a HTTP/2:

  • Multiplexování:

    • HTTP/1.1: Sekvenční zpracování požadavků na jednom spojení. Pro paralelní načítání bylo potřeba několik TCP spojení.
    • HTTP/2: Multiplexování na jednom TCP spojení. Umožňuje současné odesílání více požadavků a přijímání odpovědí, aniž by se navzájem blokovaly.
  • Komprese hlaviček (HPACK):

    • HTTP/1.1: Hlavičky jsou přenášeny bez komprese, což může být nadbytečné při velkém počtu požadavků.
    • HTTP/2: Komprese hlaviček pomocí algoritmu HPACK. Snižuje velikost přenášených dat.
  • Prioritizace toků:

    • HTTP/1.1: Nebyla možnost priorizace.
    • HTTP/2: Klient může přiřadit priority různým tokům dat, ovlivňující jejich pořadí zpracování serverem.
  • Server push:

    • HTTP/1.1: Klient musí explicitně požadovat každý zdroj (CSS, JS, obrázky).
    • HTTP/2: Server může předem posílat zdroje, které považuje za nutné pro zobrazení stránky, ještě před tím, než je klient požádá.
  • Binární protokol:

    • HTTP/1.1: Textový protokol, relativně snadno čitelný.
    • HTTP/2: Binární protokol, efektivnější pro parsování a přenos.

Porovnávací tabulka:

Charakteristika HTTP/1.1 HTTP/2
Multiplexování Ne (více TCP) Ano (jedno TCP)
Komprese hlaviček Ne Ano (HPACK)
Prioritizace toků Ne Ano
Server push Ne Ano
Formát protokolu Textový Binární
Problém Head-of-Line blokování Přítomen (pro jedno TCP) Snížen díky multiplexování

Příklad multiplexování (konceptuální):

// HTTP/1.1: Sekvenční požadavky
fetch('/resource1')
  .then(() => fetch('/resource2'))
  .then(() => fetch('/resource3'));

// HTTP/2: Paralelní požadavky na jednom spojení
// V prohlížeči se to děje automaticky
// Koncepčně, požadavky mohou být odeslány téměř současně