HttpFixerBlogHeaders → Alt-Svc and HTTP/3 — How Browsers Discover and Switch to QUIC
Headers

Alt-Svc and HTTP/3 — How Browsers Discover and Switch to QUIC

Updated April 2026

Reading this? Verify your fix in real-time. Audit your edge headers → EdgeFix

HTTP/3 eliminates head-of-line blocking and makes connections faster on mobile and high-latency networks. Your CDN probably already serves it. The Alt-Svc header is how browsers discover it — here is how to check and what to do if it is missing.

Check if you already serve HTTP/3

# Check for Alt-Svc header (signals HTTP/3 availability)
curl -I https://yoursite.com/ | grep -i alt-svc

# Example response — Cloudflare:
# alt-svc: h3=":443"; ma=86400

# Example response — Vercel:
# alt-svc: h3=":443"; ma=2592000

# If no Alt-Svc header — you are not advertising HTTP/3

What the Alt-Svc header means

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

# h3 = HTTP/3 (QUIC)
# :443 = same host, port 443
# ma=86400 = cache this information for 86400 seconds (24 hours)

# Older HTTP/3 draft versions (pre-standard):
Alt-Svc: h3-29=":443"; ma=86400  # Draft 29 (still seen on some servers)

Cloudflare — already enabled, nothing to do

Cloudflare enables HTTP/3 by default for all proxied domains. If your domain is on Cloudflare, the Alt-Svc header is already being sent. You can verify and configure at: Speed → Optimization → Protocol Optimization → HTTP/3 (with QUIC).

Vercel — already enabled

Vercel's edge network serves HTTP/3 automatically. No configuration needed.

Nginx — enable HTTP/3 (self-hosted)

# Requires Nginx 1.25+ with QUIC support (--with-http_v3_module)
server { listen 443 ssl http2; listen 443 quic reuseport;  # HTTP/3 via QUIC http3 on; http3_hq on; quic_retry on; ssl_certificate /etc/ssl/cert.pem; ssl_certificate_key /etc/ssl/key.pem; # Advertise HTTP/3 to browsers add_header Alt-Svc 'h3=":443"; ma=86400'; location / { proxy_pass http://localhost:3000; }
}

# Firewall: open UDP port 443 alongside TCP 443
# ufw allow 443/udp

Test HTTP/3 connection

# curl supports HTTP/3 in recent versions
curl --http3 https://yoursite.com/ -I

# Or use:
# Chrome: chrome://net-internals/#quic
# Firefox: about:networking#http3

Browser support for HTTP/3

BrowserHTTP/3 support
Chrome 87+Full support
Firefox 88+Full support
Edge 87+Full support
Safari 14+Full support

If your users are on modern browsers and you are behind Cloudflare or Vercel, they are already using HTTP/3. The Alt-Svc header is the handshake that makes it happen — check it exists with the curl command above.

Audit your edge headers → EdgeFix
Check if your domain is on the HSTS preload list → HSTS Preload Checker