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:
        - "Persistent connections (keep-alive)"
        - "Chunked transfer encoding"
        - "Cache control (Cache-Control, ETag)"
        - "Content negotiation (Accept headers)"
        - "Range requests for partial content"
      limitations:
        - "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:
        - "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:
        - "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:
        - "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:
        - "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:
        - "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."
