셋 다 같은 HTTP 의미론(method, header, status code)을 제공하지만, 바이트를 회선 위로 어떻게 옮기는지가 다르다 — 각 버전이 이전 버전의 병목을 고친다. 관통하는 주제는 하나의 멈춘 request가 다른 것들을 막는 head-of-line (HOL) blocking 제거다.
HTTP/1.1 over TCP one request at a time per connection
conn ──[req A]──[req B]──[req C]──▶ B waits for A (HOL blocking at HTTP layer)
HTTP/2 over TCP many streams multiplexed on ONE connection
conn ══[A|B|C interleaved]══▶ but a lost TCP packet stalls ALL streams
(HOL blocking moves down to TCP)
HTTP/3 over QUIC (UDP) independent streams, per-stream delivery
conn ══[A][B][C]══▶ a lost packet stalls only its own stream
