HTTP/2 přináší multiplexing, server push, header kompresi a binární framing. Co to znamená pro výkon webových aplikací a jak se připravit na nový standard.
HTTP/1.1 — 16 let starý protokol¶
HTTP/1.1 z roku 1999 nebyl navržený pro moderní web. Textový protokol s jedním requestem na TCP spojení vede k head-of-line blocking. Workaroundy jako domain sharding, sprite sheety a inline resources jsou hacky, ne řešení.
HTTP/2, standardizovaný v květnu 2015 (RFC 7540), je založený na Google SPDY protokolu a řeší fundamentální omezení HTTP/1.1.
Klíčové features HTTP/2¶
HTTP/2 přináší zásadní vylepšení:
- Multiplexing** — více requestů přes jedno TCP spojení, paralelně, bez blokování
- Header compression (HPACK)** — eliminuje redundantní hlavičky (cookies, user-agent se posílají jen jednou)
- Server Push** — server proaktivně pošle resources, o kterých ví, že je klient bude potřebovat
- Binary framing** — binární formát je efektivnější pro parsování než textový
- Stream priority** — klient může prioritizovat důležité resources
Dopad na frontend optimalizace¶
HTTP/2 mění best practices pro webový výkon:
- Domain sharding** — už není potřeba, multiplexing řeší paralelismus
- Sprite sheety** — individuální soubory jsou OK díky multiplexingu
- Concatenation** — menší, granulární bundles umožňují lepší caching
- Inlining** — server push je elegantnější alternativa
Pozor: HTTP/2 vyžaduje HTTPS (prakticky, ne formálně). Let’s Encrypt dělá tuto podmínku triviální.
Podpora a adopce¶
Podpora v prohlížečích je již dobrá — Chrome, Firefox, Edge a Safari podporují HTTP/2. Na straně serveru:
- nginx** — plná podpora od verze 1.9.5
- Apache** — mod_http2
- Node.js** — experimentální podpora
- CDN** — CloudFlare, Fastly a další již podporují HTTP/2
Migrace je jednoduchá — stačí aktualizovat server konfiguraci a zajistit HTTPS.
Závěr: bezbolestný upgrade výkonu¶
HTTP/2 je vzácný případ upgradu, který přináší výkonnostní benefity prakticky bez práce na straně vývojáře. Přejděte na HTTPS (Let’s Encrypt), aktualizujte server na HTTP/2 podporu a vaši uživatelé okamžitě pocítí rozdíl.