HTTP/2, HTTP/3, and QUIC: CDN Protocol Evolution

· Mei-Lin Wu · 4 min read

Protocol Evolution

HTTP protocol versions have evolved to address web performance bottlenecks. CDNs are at the forefront of protocol adoption — they're often the first to support new protocols and can serve them to clients while maintaining older protocols to origin. For foundational context, read CDN Performance Metrics: What to Measure — FlyFish NWA.

HTTP/2: Multiplexing

HTTP/2 solved HTTP/1.1's head-of-line blocking by multiplexing multiple requests over a single TCP connection:

Performance Comparison: Edge vs Origin Processing
Metric Edge Processing Origin Processing Improvement
Latency (p50)8–15 ms120–300 ms15–20x faster
Cache Hit Ratio85–95%N/AReduces origin load
TLS Handshake1–5 ms (nearby PoP)50–150 ms10–30x faster
Bandwidth Cost$0.01–0.04/GB$0.05–0.12/GB3–5x cheaper
Availability99.99% (multi-PoP)99.9% (single DC)10x fewer outages
CDN Protocol Stack — Layered network architectureCDN Protocol Stack — Layered network architecture CDN Protocol Stack Application Layer HTTP/2, HTTP/3, WebSocket Layer 5 Security Layer TLS 1.3 / Certificate Pinning Layer 4 Transport Layer TCP (HTTP/2) or QUIC (HTTP/3) Layer 3 Network Layer IP / Anycast Routing Layer 2 Physical Layer Fiber / Peering / IXP Layer 1 Higher ← Abstraction → Lower
Figure 1: CDN Protocol Stack — Layered network architecture

Performance impact: HTTP/2 eliminates the need for domain sharding, sprite sheets, and CSS inlining — hacks that were necessary with HTTP/1.1's 6-connection limit.

HTTP/3: QUIC Transport

HTTP/3 replaces TCP with QUIC (UDP-based transport), addressing TCP's remaining limitations:

Key Improvements

Performance Impact

ScenarioHTTP/2 (TCP)HTTP/3 (QUIC)
New connection2-3 RTT (TCP + TLS 1.3)1 RTT (combined)
Resumed connection1-2 RTT0 RTT
Packet loss (2%)All streams stallOnly affected stream stalls
Network switchConnection drops, re-establishConnection migrates seamlessly

CDN Protocol Support

Client-to-CDN vs CDN-to-Origin

CDNs typically use the newest protocol for client connections but HTTP/1.1 or HTTP/2 for origin connections:

Protocol Handshake Flow — Connection establishment sequenceProtocol Handshake Flow — Connection establishment sequence CDN Request Flow — From Browser to Edge CDN Request Lifecycle Step 1 DNS Lookup Step 2 TCP Connect Step 3 TLS Handshake Step 4 Edge Server Step 5 Cache Check Step 6 Response Cache HIT → 5ms response Cache MISS → Fetch origin 0ms ~50ms (cache hit) ~200ms (cache miss)
Figure 2: Protocol Handshake Flow — Connection establishment sequence
Client ←HTTP/3 (QUIC)→ CDN Edge ←HTTP/1.1 or HTTP/2 (TCP)→ Origin

This is fine because the CDN-to-origin connection benefits less from HTTP/3: it's a single persistent connection (no multiplexing benefit), on a stable network (no connection migration needed), with low packet loss (data center to data center).

Enabling HTTP/3

HTTP/3 is negotiated via the Alt-Svc header. The CDN sends:

Alt-Svc: h3=":443"; ma=86400

The browser notes this and uses QUIC for subsequent requests. First-visit: HTTP/2; subsequent visits: HTTP/3. This ensures graceful fallback.

Monitoring Protocol Usage

Track which protocols your users actually use. Check CDN analytics for HTTP/1.1 vs HTTP/2 vs HTTP/3 distribution. High HTTP/1.1 rates may indicate outdated CDN configuration or clients.

External References

References & Standards: HTTP/2 specification · W3C Web Performance