HTTP/1.1, HTTP/2 and HTTP/3 at a glance
All three versions carry the same content, but with different efficiency. Browsers negotiate the best common version themselves; your server only has to offer it.
- HTTP/1.1 sends the requests of a connection one after another, so browsers open several connections in parallel.
- HTTP/2 bundles all requests into one TLS connection (multiplexing) and compresses headers. Whether the server supports it is decided during the TLS handshake via ALPN – exactly what the check asks.
- HTTP/3 no longer runs over TCP but over QUIC on UDP port 443. A lost packet no longer holds up all the others, and connections survive switching from Wi-Fi to mobile data. That helps above all on poor networks.
How does a browser find HTTP/3?
A browser always connects over TCP first. Only when the server offers HTTP/3 in the Alt-Svc: h3=":443" header does it try QUIC next time. Alternatively the offer is in the DNS record of type HTTPS, which works on the very first visit. Without either, a working QUIC server goes unused. If HTTP/3 is announced but UDP 443 is blocked, the browser falls back to HTTP/2 and loses time doing so.
How does the tool check HTTP/3?
It sends a QUIC packet with a deliberately unknown version number to UDP port 443. Every QUIC server must answer with the list of its versions (RFC 9000). This proves that a QUIC server really is listening there and that it is not just announced. If there is no answer, it is almost always a firewall, security group or missing port mapping for UDP.
Check the security headers of the same site in the security header check and the certificate in the SSL check.
FAQ
Do I need HTTP/3 at all?
No, HTTP/2 is already a big step for most websites. HTTP/3 mainly helps on mobile devices and networks with packet loss. If your web server or CDN offers it without effort, it is worth it.
My server announces HTTP/3 but the check finds no QUIC server. Why?
HTTP/3 runs over UDP port 443. If only TCP 443 is open – in the firewall, the cloud security group or the Docker port mapping – the QUIC packet does not arrive. Open 443/udp as well.
Why does my browser still show HTTP/2?
Browsers only learn about HTTP/3 from the Alt-Svc header of the first response. Load the page a second time. The developer tools (Network, column “Protocol”) will then show h3.
Does Apache support HTTP/3?
No. Apache supports HTTP/2 via mod_http2; for HTTP/3 you need a reverse proxy such as Caddy or nginx in front of it, or a CDN.
Does the check put load on my server?
No. There is one TLS handshake, two header requests without content and one or two UDP packets.