Free HTTP/3 (QUIC) Checker
Test whether a website serves HTTP/3 over QUIC. Reads the Alt-Svc header, the HTTPS DNS record, and probes UDP/443 to confirm real QUIC support, then explains how to enable it.
Run the check
Enter a domain to check it live against the IntoDNS.ai engine. No signup, no rate-limited trial.
What this HTTP/3 checker verifies
This tool runs the same HTTP/3 detection the IntoDNS.ai security scan uses, against a single domain. It makes an HTTPS request to read the Alt-Svc response header and looks for an h3 entry, queries the HTTPS DNS record (type 65 / SVCB) for an h3 ALPN advertisement, and sends a real QUIC Version Negotiation packet to UDP port 443 to confirm a QUIC server is actually listening. A domain is reported as HTTP/3 capable when any of these three independent signals confirms it, so the result reflects real reachability rather than a single header that could be stale or proxied away.
What HTTP/3 and QUIC are
HTTP/3 is the third major version of the HTTP protocol, and unlike HTTP/1.1 and HTTP/2 it does not run over TCP. It runs over QUIC, a transport protocol built on UDP that folds the TLS 1.3 handshake into the connection setup. QUIC was standardised as RFC 9000 and HTTP/3 as RFC 9114. Because QUIC carries its own encryption and stream multiplexing, HTTP/3 connections establish faster and behave better on lossy or changing networks than anything layered on TCP. The practical effect for a visitor is that the page starts loading in fewer round trips and stays responsive when the network is poor.
Why HTTP/3 matters
The headline win is latency. QUIC combines the transport and TLS handshakes, so a fresh connection often opens in a single round trip, and a resumed one in zero. The second win is the end of transport-level head-of-line blocking: in HTTP/2 over TCP, one lost packet stalls every multiplexed stream because TCP must deliver bytes in order; QUIC tracks streams independently, so a loss on one stream no longer freezes the others. Third is connection migration — a QUIC connection is keyed to a connection ID, not an IP and port tuple, so a phone moving from Wi-Fi to cellular keeps the same connection instead of renegotiating. Together these make HTTP/3 most valuable for mobile users, high-latency links, and lossy networks, which is exactly where TCP-based HTTP struggles.
The Alt-Svc advertisement mechanism
A browser cannot start a request over HTTP/3 cold, because it does not yet know the server speaks QUIC. So the first connection is made over HTTP/2 (or HTTP/1.1), and the server advertises HTTP/3 in the Alt-Svc response header, for example Alt-Svc: h3=":443"; ma=86400. The browser caches that advertisement for the ma= (max-age) duration and upgrades subsequent connections to HTTP/3. This is why a brand-new visit never uses HTTP/3 on its very first request, and why a missing or short-lived Alt-Svc header is the most common reason a QUIC-capable server still serves most traffic over HTTP/2. The newer HTTPS DNS record can advertise h3 ahead of the first connection, removing that initial round trip, which is why this checker reports it separately.
How to read the result
A pass means at least one detection method confirmed HTTP/3: an h3 entry in Alt-Svc, an h3 ALPN in the HTTPS DNS record, or a live QUIC response on UDP/443. The detail panel shows which methods fired. Alt-Svc advertised plus a QUIC probe response is the strongest result — the server both announces and actually answers QUIC. If Alt-Svc shows h3 but the QUIC probe gets no response, suspect a firewall blocking inbound UDP/443, since QUIC is UDP-only and many networks still filter it. A QUIC probe marked inconclusive means our scanner could not send UDP from its own network, not that your server is broken. If the site is unreachable over HTTPS we cannot read Alt-Svc at all, and the result is reported as unconfirmed rather than a failure.
How to enable HTTP/3
On nginx 1.25+ (built with the QUIC module) add a listen 443 quic reuseport directive alongside the existing listen 443 ssl, set http3 on;, and advertise it with add_header Alt-Svc 'h3=":443"; ma=86400';. On Cloudflare it is a single toggle: Speed → Optimization → Protocol Optimization → HTTP/3 (with QUIC). Caddy enables HTTP/3 automatically with no configuration. LiteSpeed and OpenLiteSpeed ship QUIC support that you enable in the server tuning panel. Whatever the server, two things are non-negotiable: UDP port 443 must be open through every firewall and load balancer in front of the origin, because QUIC does not use TCP, and the Alt-Svc header must actually reach the browser — a proxy that strips it will silently keep clients on HTTP/2. For the best result, also publish an HTTPS DNS record (example.com. IN HTTPS 1 . alpn="h3,h2") so capable clients can pick HTTP/3 before the first connection. After any change, re-run this checker to confirm all three signals line up.
What This Checks
- Alt-Svc response header inspection for an h3 advertisement
- HTTPS DNS record (type 65 / SVCB) for an h3 ALPN
- Live QUIC Version Negotiation probe on UDP port 443
- Advertised protocol version and port
- The same HTTP/3 result the full IntoDNS.ai scan reports
Common Fix Path
- Enable HTTP/3 on your server or CDN (nginx 1.25+, Cloudflare toggle, Caddy auto, LiteSpeed)
- Add an Alt-Svc: h3=":443"; ma=86400 response header
- Open UDP port 443 through every firewall and load balancer
- Publish an HTTPS DNS record with alpn="h3,h2" for pre-connection discovery
Frequently Asked Questions
How do I know if my website supports HTTP/3?
Why does my first page load not use HTTP/3?
What is the difference between HTTP/2 and HTTP/3?
My Alt-Svc header shows h3 but the QUIC probe failed — why?
Does enabling HTTP/3 make my site faster?
What is the HTTPS DNS record and do I need it for HTTP/3?
Machine-Readable Evidence
AI assistants and automation can cite the stable explanation page, then fetch the live check result for a specific domain.
GET https://intodns.ai/api/web/http3?domain=example.com