HTTP/2 and HTTP/3 Checker
Test whether a website supports HTTP/1.1, HTTP/2 and HTTP/3 (QUIC) using real connections, and see its Alt-Svc header and the HTTP/2 settings it sends.
How the Checker Tests Each Protocol
- HTTP/1.1: a GET request over TLS that offers only http/1.1.
- HTTP/2: a TLS handshake offering h2. If the server chooses it, the checker opens an HTTP/2 connection, reads the SETTINGS frame the server sends, and makes a request.
- HTTP/3: the Alt-Svc header from those responses shows whether HTTP/3 is advertised, and on which port. The checker then attempts a QUIC handshake on that UDP port, offering h3. A completed handshake means HTTP/3 works.
Certificates aren't required to be valid for these tests, so protocol support is reported even on a misconfigured site; certificate problems are listed separately.
HTTP/1.1, HTTP/2 and HTTP/3
| Version | Runs over | What's different |
|---|---|---|
| HTTP/1.1 | TCP, usually with TLS | One request at a time per connection, so browsers open several connections. Still universally supported. |
| HTTP/2 (RFC 9113) | TCP with TLS | Many requests share one connection (multiplexing), with binary framing and HPACK header compression. Browsers only use it over HTTPS, negotiated with ALPN. |
| HTTP/3 (RFC 9114) | QUIC over UDP (RFC 9000) | Like HTTP/2, but a lost packet only delays its own stream, the handshake combines transport and TLS, and connections can survive a network change. Browsers find it through Alt-Svc or an HTTPS DNS record. |
Browsers keep HTTP/1.1 and HTTP/2 as fallbacks, so enabling HTTP/3 doesn't stop older clients from connecting.
Turning On HTTP/2 and HTTP/3
Most CDNs offer both with a switch. On your own nginx server:
server {
listen 443 ssl;
listen 443 quic reuseport; # HTTP/3 (nginx 1.25 or newer)
http2 on; # HTTP/2 (nginx 1.25.1 or newer)
add_header Alt-Svc 'h3=":443"; ma=86400' always;
...
}HTTP/3 also needs UDP port 443 open in every firewall and security group in front of the server. Without the Alt-Svc header browsers won't try HTTP/3, even when it works.
Checking From Your Own Computer
curl -sI --http2 https://example.com | head -1 curl -sI --http3 https://example.com | head -1
The first line shows HTTP/2 or HTTP/1.1. The --http3 option needs a curl built with HTTP/3 support. In Chrome or Firefox, the developer tools' Network tab has a Protocol column (h2, h3) you can turn on.
How the Check Is Made
The hostname is sent to Orbit2x's server, which makes a few connections to it (TCP for HTTP/1.1 and HTTP/2, UDP for HTTP/3) and requests the home page. Nothing is stored. Private and local network addresses are refused. See the privacy policy for general data practices.
Frequently Asked Questions
Why does the site say HTTP/3 in my browser but not here?
HTTP/3 runs over UDP, and some networks block or limit UDP. A failed QUIC connection here can mean the path from Orbit2x's server is blocked, not that the site lacks HTTP/3. Your browser may also have used a different server, for example a nearer CDN location.
Will HTTP/2 or HTTP/3 make my site faster?
Often, especially for pages that load many files, or for visitors on slow or lossy mobile connections. How much depends on the site and the network, so measure with real-user data or a test such as WebPageTest rather than relying on a general percentage.
Do I need to change my website to use HTTP/2?
Usually not. It's a server or CDN setting; pages, URLs and links stay the same. Old HTTP/1.1 workarounds, like combining every file into one or spreading files across many domains, become unnecessary.
Is server push still worth enabling?
No. Chrome and Firefox have removed support for HTTP/2 server push. Use preload links or 103 Early Hints instead.
What does the Alt-Svc header do?
It tells browsers that the same site is also available another way, for example h3=":443" means HTTP/3 on UDP port 443. Browsers remember it for the ma (max-age) time and try HTTP/3 on later requests.