Transport
Runs over TCP; relies on the kernel’s TCP stack and TLS on top.
Runs over QUIC, which runs over UDP and integrates TLS 1.3 into the transport.
HTTP/3 is the better protocol on paper and a clear win on lossy or mobile networks, because it kills TCP’s connection-level head-of-line blocking and sets up connections faster. HTTP/2 is still everywhere, simpler to operate, and fine on clean wired networks. In practice you enable both: serve HTTP/2 as the baseline and advertise HTTP/3 (via Alt-Svc) so capable clients upgrade.
Both deliver the same thing — multiplexed HTTP requests — but over different transports. HTTP/2 multiplexes streams over one TCP connection, so a single lost packet stalls every stream behind it. HTTP/3 moves to QUIC over UDP, where each stream is independent, packet loss is per-stream, and the handshake folds TLS in for faster (often 0-RTT) setup.
Runs over TCP; relies on the kernel’s TCP stack and TLS on top.
Runs over QUIC, which runs over UDP and integrates TLS 1.3 into the transport.
Application-layer HoL is solved, but TCP-level HoL remains: one lost packet stalls all streams.
Eliminated: QUIC streams are independent, so loss on one stream does not block others.
TCP handshake then a separate TLS handshake — multiple round-trips on first connect.
One combined QUIC+TLS handshake; 0-RTT resumption for returning clients.
A network change (new IP) breaks the TCP connection and forces a reconnect.
Connection IDs let a session survive IP changes — seamless Wi-Fi↔cellular handoff.
HPACK header compression.
QPACK — HPACK adapted so head-of-line blocking does not reintroduce stalls.
Supported by essentially every server, proxy, and client; easy to inspect.
Widely supported by browsers and CDNs, but UDP handling, load balancing, and tracing are newer.
TCP offload and mature stacks make it cheap per byte.
QUIC runs largely in user space; historically higher CPU per byte, improving with offloads.
A public website or API behind a CDN
Enable both: HTTP/2 as the floor and HTTP/3 via Alt-Svc so capable clients get QUIC’s benefits automatically.
A global, mobile-heavy product
HTTP/3’s loss handling and connection migration directly improve real-world tail latency.
Internal datacenter traffic on clean links
On low-loss wired networks HTTP/2’s benefits are realised and it is simpler to run and debug.
An environment that filters UDP
HTTP/3 needs UDP/443; where it is blocked, HTTP/2 is the reliable baseline.