Alt-Svc and HTTP/3 — How Browsers Discover and Switch to QUIC
Updated April 2026
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
| Browser | HTTP/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