Back to Blog
team@tinypod.app

HTTP/2 and HTTP/3: Why Your Self-Hosted Apps Should Support Them

HTTP/2 and HTTP/3 make websites significantly faster. If your reverse proxy doesn't support them, you're leaving performance on the table.

httpperformancenetworking

Protocol Evolution


HTTP/1.1 (1997)

  • One request per connection
  • Text-based headers (verbose)
  • No server push
  • Head-of-line blocking

  • HTTP/2 (2015)

  • Multiple requests on one connection (multiplexing)
  • Binary protocol (smaller, faster to parse)
  • Header compression (HPACK)
  • Server push
  • Still uses TCP

  • HTTP/3 (2022)

  • Uses QUIC instead of TCP
  • Zero-RTT connection establishment
  • No head-of-line blocking (even between streams)
  • Better on unreliable networks (mobile, WiFi)
  • Built-in encryption (TLS 1.3)

  • Performance Impact


    HTTP/2 vs HTTP/1.1

  • Page load time: 15-50% faster
  • Biggest impact: Pages with many resources (images, scripts, stylesheets)
  • Eliminates the need for hacks like domain sharding, image sprites, CSS concatenation

  • HTTP/3 vs HTTP/2

  • Initial connection: 33% faster (0-RTT vs 1-RTT)
  • Packet loss recovery: Significantly faster (no head-of-line blocking)
  • Mobile networks: 10-30% faster (better loss recovery)

  • Enabling HTTP/2 and HTTP/3


    Caddy (Recommended)

    Caddy enables HTTP/2 by default and HTTP/3 experimentally. No configuration needed. This is one of the many reasons TinyPod uses Caddy.


    Nginx

    HTTP/2:

    listen 443 ssl http2;


    HTTP/3 (requires nginx 1.25+):

    listen 443 quic;

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


    Cloudflare

    HTTP/2: Enabled by default

    HTTP/3: Toggle in Cloudflare dashboard


    Do Your Apps Need to Support HTTP/2?


    No. The reverse proxy handles protocol negotiation. Your app can speak HTTP/1.1 internally while the proxy serves HTTP/2 and HTTP/3 to clients.


    Client ←→ (HTTP/3) ←→ Caddy ←→ (HTTP/1.1) ←→ Your App


    Verifying


    Check if your site supports HTTP/2 and HTTP/3:

  • Browser DevTools: Network tab, Protocol column
  • curl --http2 https://yoursite.com
  • curl --http3 https://yoursite.com

  • The Bottom Line


    Use Caddy as your reverse proxy and you get HTTP/2 and HTTP/3 automatically. Your users get faster page loads with zero configuration on your part.