HTTP/2: мультиплексирование, сжатие заголовков и server push
Коротко: HTTP/2 передаёт много запросов одновременно по одному соединению и сжимает заголовки, благодаря чему веб-страницы быстрее, чем с HTTP/1.1.
Подробнее: HTTP/1.1 обрабатывает запросы по одному на соединение; браузеры поэтому открывают несколько соединений и борются с head-of-line blocking (один медленный ответ задерживает всё за ним). HTTP/2 (2015) решает многие из этих проблем, не меняя смысла методов, кодов состояния и заголовков.
Подробности
Ключевые новшества
- Бинарный протокол вместо текстового: компактнее и быстрее обрабатывается.
- Мультиплексирование: много потоков (streams) идут параллельно по одному соединению TCP; кадры разных запросов перемежаются.
- Сжатие заголовков (HPACK): повторяющиеся заголовки (cookie, user agent) отправляются полностью лишь один раз, затем короткими ссылками.
См. также: QUIC и HTTP/3, HTTP keep-alive, заголовки HTTP, TLS