{
    "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."
            }
        ]
    }
}
