api: "YAML JSON TOON Database" version: 1.0.0 format: json dataset: id: 45 slug: http-protocol-evolution title: "HTTP Protocol Evolution: HTTP/1.1 to HTTP/3" description: "The evolution of HTTP from HTTP/1.1 through HTTP/2 to HTTP/3 (QUIC): key differences, performance implications, migration strategies, and adoption status." category: "Web Technologies" category_slug: web-technologies tags: "http,http2,http3,quic,protocol,performance,networking,tls" view_count: 0 created_at: 1777673262 updated_at: 1777673262 data: versions - version: HTTP/1.1 year: 1999 transport: TCP rfc: "RFC 7230-7235 (updated), RFC 2616 (original)" key_features: [5]: "Persistent connections (keep-alive)","Chunked transfer encoding","Cache control (Cache-Control, ETag)","Content negotiation (Accept headers)","Range requests for partial content" limitations: [4]: "Head-of-line blocking at application layer (one request at a time per connection)","Verbose text-based headers (no compression)","No server push capability","Multiple connections needed for parallelism (typically 6 per origin)" performance_tips: [4]: "Domain sharding (splitting resources across multiple domains)","CSS sprites, image inlining, concatenation","Resource hints (preconnect, prefetch, preload)","Keep connection count optimal (not too many)" adoption: "Near 100% — every web server and client supports it" - version: HTTP/2 year: 2015 transport: "TCP (with binary framing layer)" rfc: "RFC 7540, RFC 7541" key_features: [6]: "Binary framing layer (not text-based like HTTP/1.1)","Multiplexed streams (multiple requests in one connection)","HPACK header compression (eliminates redundant headers)","Server push (server sends resources before requested)","Stream prioritization (dependency tree)","Connection coalescing (multiple origins share one connection)" limitations: [5]: "Head-of-line blocking at TCP layer (packet loss blocks ALL streams)","TCP congestion control affects all multiplexed streams","Server push often misused (better alternatives exist)","Requires TLS in practice (browsers only implement HTTP/2 over TLS)","Debugging harder than HTTP/1.1 (binary protocol)" migration_notes: "Enable via reverse proxy (Nginx, Caddy) or CDN. No application changes needed. TLS 1.2+ required. Use h2 ALPN negotiation." adoption: "~40% of all websites (declining as HTTP/3 grows)" - version: HTTP/3 year: 2022 transport: "QUIC (UDP-based, with TLS 1.3 built-in)" rfc: "RFC 9114, RFC 9000 (QUIC), RFC 9001 (TLS over QUIC)" key_features: [6]: "QUIC transport: 0-RTT connection establishment, connection migration","No TCP-level HOL blocking (separate streams, independent delivery)","Built-in TLS 1.3 encryption (no separate TLS layer)","Connection migration (survives IP/network changes)","Faster handshake (0-1 RTT vs 2-3 RTT for TCP+TLS)","User-space implementation (faster protocol evolution)" limitations: [5]: "UDP-based — some firewalls/nat devices block or throttle UDP","Higher CPU usage than TCP (user-space processing)","QUIC not as mature as TCP stack (kernel optimizations)","Less tooling for debugging compared to TCP-based protocols","Some middleboxes still interfere with UDP traffic" performance_gains: "40-60% faster page loads on slow/mobile networks, especially with packet loss (3-10% loss: HTTP/3 vs HTTP/2 improvement is dramatic)" adoption: "~35%+ of websites as of 2026. All major CDNs (Cloudflare, Fastly, Akamai) support it. All modern browsers support it." migration_notes: "Enable at CDN level first. Verify UDP is allowed on network path (typically port 443 UDP). Keep HTTP/2 fallback. Monitor for middlebox interference."