Networking & Protocols
HTTP versions: multiple-choice review
Six questions that cut across the whole unit. Each mirrors a protocol-selection or diagnosis call you make in production — not a definition to recite, but a tradeoff to weigh under real network conditions.
Confirm you can connect multiplexing, the two layers of head-of-line blocking, QUIC’s stream isolation, header-compression ordering, and the operational signals that decide which HTTP version actually wins.
An API does 50 concurrent sub-requests per page. On a fibre path (loss under 0.1%) HTTP/2 is fast; on a 1.5%-loss cellular path it is measurably slower than HTTP/1.1 with 6 connections. Why?
HTTP/2 multiplexes independent streams, yet it still suffers head-of-line blocking. At which layer, and why does HTTP/3 escape it?
Why did HTTP/3 replace HPACK with QPACK, and what would happen if it had kept HPACK over QUIC?
A team plans to ship HTTP/2 Server Push to preload critical CSS. What should a senior reviewer say?
An operator turns on HTTP/3 at the edge. Overnight the ALPN dashboard shows h3 share collapsing from 21% to 1% with no application errors. Most likely cause and right first move?
A real-time multiplayer backend serves 100k mostly-cellular connections. Position updates are useless if they arrive late but a missed one is harmless. Which stack fits best, and why?
The unit’s through-line is one progression: HTTP/1.1 parallelises with many connections, HTTP/2 multiplexes streams on one TCP connection (removing application-layer HOL blocking but inheriting transport-layer HOL blocking), and HTTP/3 moves to QUIC for per-stream loss recovery, QPACK header compression, and connection migration. The production lens is constant — match the version to the network (HTTP/3 on lossy and mobile, HTTP/2 on reliable east-west), watch ALPN and h3-fallback-by-ASN as your health signal, and prefer 103 Early Hints and RFC 9218 priorities over the dead Server Push.