HTTP Protocol Versions Lab (Interactive)
Load an 8-resource page over lossy mobile RTT and watch head-of-line blocking shift from app to TCP to gone. Compare HTTP/1.1 connection limits, HTTP/2 multiplexing over one TCP, and HTTP/3 QUIC independent streams with real handshake, retransmission, and header-compression math.
HTTP/1.1 vs HTTP/2 vs HTTP/3 (QUIC)
Load an 8-resource page over a lossy mobile link and watch head-of-line blocking behave differently per version.
Network conditions
Page resources (628 KB total)
index.html
8KB · 20ms
critical.css
30KB · 5ms
app.js
240KB · 10ms
hero.webp
180KB · 2ms
analytics.js
20KB · 300ms 🐌
fonts.woff2
60KB · 3ms
avatar.png
40KB · 4ms
ads.js
50KB · 15ms
Streams interleave over 1 TCP, but ONE dropped TCP packet freezes ALL streams until retransmit (transport HoL).
HTTP/2 (1 TCP, binary frames)
Evolution recap
• H1: serial ASCII, 6-socket workaround, domain sharding.
• H2: binary frames, multiplexed streams, HPACK, server push — still TCP.
• H3: QUIC in user space over UDP, independent streams, combined TLS 1.3, Connection IDs.
Raise loss to 5%+ on h2 vs h3: the gap is the HoL-blocking story.
How It Works Under the Hood
HTTP/1.1 serializes requests per TCP connection, so browsers open six sockets per domain and one slow resource blocks its queue — application-layer head-of-line blocking. HTTP/2 replaced ASCII with binary frames and multiplexed all streams over one connection with HPACK compression, but inherited TCP's in-order guarantee: a single dropped packet on flaky cellular freezes every stream until retransmission. HTTP/3 moves transport to user-space QUIC over UDP with per-stream recovery, so only the affected stream stalls, while combined TLS 1.3 handshakes give 1-RTT (or 0-RTT resumption) setup and 64-bit Connection IDs let a video stream survive Wi-Fi-to-5G IP changes.
Core Architectural Principles
- H1: max 6 TCP connections, plaintext headers duplicated per request, application HoL blocking.
- H2: multiplexed binary streams + HPACK over one TCP — but one packet drop freezes ALL streams (transport HoL).
- H3/QUIC: UDP user-space transport, independent streams, 0-RTT resumption, Connection-ID migration across IP changes.
Narrate HoL blocking as a three-act evolution: H1 application-level, H2 surviving at the TCP layer under packet loss, H3 eliminating it with independent QUIC streams. Add the 2-RTT versus 1/0-RTT handshake math and Connection-ID migration for mobile — these are the differentiators interviewers listen for.
QUIC dominates lossy mobile networks but runs in user space without NIC offload, and strict firewalls blocking UDP 443 force HTTP/2 fallback.