HTTP/2 — binary frames, HPACK header compression, multiplexing на одном TCP. Server push убрали; TCP HOL blocking остался — решает HTTP/3.
Разбор
Binary framing. HTTP/1.1 — text (telnet). HTTP/2 — binary frames (HEADERS, DATA) с stream ID. Frames interleaved, reassembled by ID — multiplexing.
HPACK. HTTP/1.1 resends full headers plaintext каждый request. HPACK — dynamic table, repeats = tiny index. Cookie-heavy sites — real win.
Prioritisation & flow control. Priority hints («CSS важнее image»), per-stream flow control против starvation.
Server push — server sends unrequested resources. Hard to use (push cached stuff); removed from Chrome. Замена — 103 Early Hints + preload.
Catch — TCP HOL blocking. HTTP/2 убрал HOL на HTTP layer, но streams на one TCP. Lost packet stalls every stream until retransmit. На lossy network HTTP/2 может проиграть six HTTP/1.1 connections. QUIC/HTTP/3 решает это.
Итог
HTTP/2 = multiplexing + HPACK на одном TCP; помните TCP-level HOL — причина HTTP/3.