HTTP/2 & HTTP/3 Protocol Test
Check whether a site supports HTTP/1.1, HTTP/2, and HTTP/3 (QUIC). Compare latency across protocols and get actionable setup recommendations — free and instant.
HTTP Protocol Versions: What Changed and Why It Matters
The HTTP protocol has evolved significantly to handle the demands of modern web applications. Each version addresses specific performance bottlenecks from its predecessor.
The evolution at a glance:
- HTTP/1.1 (1997): Persistent connections and pipelining, but head-of-line blocking limits parallelism. Browsers work around this by opening 6 TCP connections per host.
- HTTP/2 (2015): Multiplexing over a single connection, binary framing, HPACK header compression, and server push. Eliminates the need for domain sharding and CSS/JS concatenation hacks.
- HTTP/3 (2022): Replaces TCP with QUIC/UDP. Independent streams eliminate transport-level head-of-line blocking. Faster handshakes (0-RTT). Critical for mobile and high-latency networks.
Reading the protocol report
The checker probes the endpoint with TLS ALPN for http/1.1 , h2 , and h3 . The version your server advertises as preferred will be negotiated — a green "HTTP/2 supported" plus a green "HTTP/3 supported" means modern browsers will use QUIC when available and fall back to HTTP/2 otherwise.
- HTTP/1.1 only: your edge or origin has not enabled h2 ALPN — acceptable but leaves performance on the table.
- HTTP/2 yes, HTTP/3 no: common; HTTP/3 requires UDP 443 and an
Alt-Svcheader to advertise availability. - Alt-Svc advertised but h3 unreachable: UDP is likely blocked somewhere between client and edge.
Common issues and fixes
- CDN says H2 but origin is H1.1: fine for browsers (CDN terminates) but can cause
proxy_http_version 1.1issues if you reverse-proxy H2 directly to an origin that only speaks H1.1. - HTTP/3 blocked by a corporate firewall: UDP 443 is often filtered; browsers will silently fall back to H2 — expected behavior.
- ALPN negotiates HTTP/1.1 unexpectedly: check your TLS config — old OpenSSL builds and some load balancers disable h2 by default.
- HTTP/2 with TLS 1.2: works, but HTTP/3 requires TLS 1.3; upgrade before enabling QUIC.
- "Cleartext h2c" attempt: browsers never use h2c; do not rely on cleartext HTTP/2 for public traffic.
What to do next
If only HTTP/1.1 is available, enable HTTP/2 at your edge or reverse proxy first — the win is immediate. Then add QUIC/HTTP/3 with an Alt-Svc header once TLS 1.3 is in place.
For continuous monitoring, FlashMon.app tracks changes automatically and alerts you the moment something breaks.
Monitor protocol availability
Get alerted if HTTP/2 or HTTP/3 breaks after a server update or deployment.
Frequently Asked Questions
HTTP/2 is the second major version of the HTTP protocol, introduced in 2015 (RFC 7540). It improves on HTTP/1.1 with multiplexing (multiple requests over a single TCP connection), header compression (HPACK), and server push. In practice, HTTP/2 eliminates the "head-of-line blocking" problem in HTTP/1.1, where a slow response delays all subsequent requests on the same connection. Most benchmarks show HTTP/2 reducing page load times by 20–50% compared to HTTP/1.1, especially for pages with many assets.
HTTP/3 (RFC 9114) replaces TCP with QUIC, a transport protocol built on UDP. The core improvement is eliminating TCP-level head-of-line blocking: in HTTP/2, a single lost TCP packet blocks all multiplexed streams. With QUIC, each stream is independent, so a lost packet only delays that one stream. HTTP/3 also has faster connection setup (0-RTT or 1-RTT vs. TCP's 3-way handshake + TLS). On mobile networks with high packet loss, HTTP/3 can be significantly faster than HTTP/2.
On Nginx 1.9.5+: add the http2 parameter to the listen directive — listen 443 ssl http2;. On Apache 2.4.17+: load mod_http2 with LoadModule http2_module and set H2 On in your VirtualHost. Note that HTTP/2 requires HTTPS (TLS) in all major browser implementations. On CDNs like Cloudflare or AWS CloudFront, HTTP/2 is enabled by default. After enabling, verify with this tool or check chrome://net-internals/#http2 in Chrome DevTools.
On Nginx 1.25+: add listen 443 quic reuseport; and http3 on; to your server block, then include the Alt-Svc header: add_header Alt-Svc 'h3=":443"; ma=86400';. On Apache: experimental mod_http3 is available in 2.4.55+. Cloudflare automatically enables HTTP/3 for all zones — turn it on under Speed → Optimization → HTTP/3 (QUIC). Since HTTP/3 uses UDP, ensure your firewall allows UDP on port 443.
The Alt-Svc (Alternative Services) header in an HTTP/2 response advertises that the server also supports HTTP/3 (QUIC) on a specific port. When a browser sees Alt-Svc: h3=":443", it attempts a QUIC connection on the next visit. This is the standard mechanism for upgrading from HTTP/2 to HTTP/3 — you can't test HTTP/3 directly without QUIC support in the network stack, which is why our tool uses Alt-Svc detection to determine HTTP/3 availability.
It depends on network conditions. On fast, reliable connections (typical data center or office WiFi), HTTP/2 and HTTP/3 perform similarly. HTTP/3's advantages are most pronounced on mobile networks, satellite links, or connections with >1% packet loss, where TCP's head-of-line blocking causes significant stalls. Studies by Cloudflare, Google, and Facebook show HTTP/3 reduces page load times by 5–20% for median users and by much more (30%+) for users on poor connections. For globally distributed audiences, enabling HTTP/3 is a low-cost, high-impact performance improvement. FlashMon monitors protocol availability to ensure your HTTP/3 configuration stays healthy after deployments.