HTTP/2 and HTTP/3 Tester
HTTP/2 and HTTP/3 tester: see which protocol a server actually negotiates over TLS ALPN, whether HTTP/3 is advertised in Alt-Svc, and the negotiated TLS version.
About HTTP/2 and HTTP/3 Tester
The HTTP/2 and HTTP/3 Tester tells you which HTTP versions a public host really offers, rather than which ones its stack claims to support. It opens a TLS connection offering h2 and http/1.1 and reports what the server picks, opens a second connection offering only http/1.1 to confirm that fallback works, and reads the Alt-Svc response header to see whether HTTP/3 is advertised. You also get the negotiated TLS version and the Server header, which is often enough to identify the reverse proxy in front of an origin.
Version selection happens during the TLS handshake through ALPN, defined in RFC 7301: the client lists the protocols it speaks and the server chooses one, so HTTP/2 (RFC 9113) is never negotiated if the server omits h2 from its ALPN list. HTTP/3 (RFC 9114) cannot be negotiated that way at all, because QUIC (RFC 9000) runs over UDP on a separate connection. Browsers therefore only attempt h3 once the server advertises it in Alt-Svc (RFC 7838). Enable HTTP/3 but forget that header and no browser will ever use it.
The probes run server-side from our own European infrastructure on port 443, so the result reflects what a client on a European network sees, not what your local browser has already cached. Two ALPN handshakes and one HEAD request are made in parallel, the target must resolve to a public address, and the raw Alt-Svc value is shown in full so you can read the advertised h3 versions and the max-age yourself. When no h3 is advertised the tool says so plainly instead of leaving a blank field.
How to use it
- 1Enter the hostname you want to test, for example example.eu, with no scheme or path.
- 2Select Test HTTP versions to run the ALPN handshakes and read the response headers.
- 3Read the three cards for HTTP/1.1, HTTP/2 and HTTP/3 to see which versions the server offers.
- 4Check the negotiated ALPN value and TLS version to confirm what the server actually chose.
- 5Read the raw Alt-Svc header to see which h3 versions are advertised and for how long.
- 6If HTTP/3 shows as not offered but your stack supports QUIC, add or correct the Alt-Svc header and retest.
Common use cases
- -Confirming a new reverse proxy or CDN really terminates HTTP/2 rather than quietly falling back to HTTP/1.1.
- -Diagnosing why browsers never use HTTP/3 on a server where QUIC is enabled.
- -Auditing whether a third-party API or asset host supports modern protocol versions before depending on it.
- -Verifying an nginx, Caddy or HAProxy configuration change from outside your own network.
- -Checking the negotiated TLS version alongside the HTTP version during a hardening review.
Frequently asked questions
- How do I check whether a website supports HTTP/2?
- Open a TLS connection that offers h2 in the ALPN extension and see whether the server selects it. That is what this tool does, and it is the only reliable test, because HTTP/2 over TLS is chosen during the handshake rather than announced in a response header. If the negotiated ALPN comes back as http/1.1, the server is not serving HTTP/2 to that client.
- What is Alt-Svc and why does HTTP/3 need it?
- Alt-Svc, defined in RFC 7838, is a response header in which a server advertises alternative ways to reach the same origin. HTTP/3 needs it because QUIC runs over UDP on a separate connection and cannot be negotiated during the TLS handshake that carries HTTP/1.1 and HTTP/2. A browser only tries h3 after it has seen a header such as alt-svc: h3=":443"; ma=86400.
- Why do browsers still use HTTP/2 when my server supports HTTP/3?
- Usually because Alt-Svc is missing, so the browser never learns that h3 is available. Other common causes are UDP port 443 blocked by a firewall somewhere on the path, a load balancer that terminates only TCP, or a stale Alt-Svc max-age. This tool separates the two questions: what the TLS handshake negotiates, and what the server advertises.
- What is ALPN?
- Application-Layer Protocol Negotiation, specified in RFC 7301, is a TLS extension that lets the client list the protocols it can speak and the server choose one inside the handshake, with no extra round trip. It is how h2 and http/1.1 are selected on port 443. Without it, HTTP/2 over TLS could not be negotiated at all.