HTTP/3 runs over QUIC instead of TCP to cut delays on slow or changing networks. Here is what changed, why it matters, and how to check whether your site uses it.

Every few years the protocol that carries web traffic gets an upgrade. HTTP/3 is the latest, and unlike earlier versions it changes the layer below HTTP too. The good news is that for most developers the work is small, because browsers, CDNs and major servers handle the details.

The problem it solves

HTTP/2 lets a browser load many files over one connection. But that connection runs on TCP, which delivers data in strict order. If one packet is lost, everything behind it waits, even files that were not affected. This is called head-of-line blocking, and it hurts most on mobile and unreliable networks.

What changed in HTTP/3

HTTP/3 replaces TCP with QUIC, a newer transport built on UDP. QUIC handles separate streams independently, so a lost packet in one stream does not stall the others. It also builds encryption in from the start.

The transport layer is what changed. TCP and TLS are replaced by QUIC.

What you gain

  • Faster connection setup. QUIC combines the transport and encryption handshakes, so there are fewer round trips before data flows.
  • No cross-stream blocking. A lost packet only delays its own stream.
  • Connection migration. A phone moving from Wi-Fi to mobile data can keep the same connection, instead of starting over.
  • Encryption by default. QUIC always uses TLS 1.3.

The gains are largest on slow, lossy or changing connections. On a fast, stable network you may notice little difference.

How to use it

In most cases you turn on HTTP/3 at your CDN or load balancer, and the rest happens automatically. The server advertises that it supports HTTP/3 using an Alt-Svc response header, and capable browsers switch on their next visit. Browsers always fall back to HTTP/2 if HTTP/3 cannot be used.

response header
HTTP/2 200 OK
alt-svc: h3=":443"; ma=86400

To check whether a page used it, open the browser developer tools, go to the Network tab, and enable the Protocol column. Requests served over HTTP/3 show h3.

Things to remember

  • Keep HTTP/2 enabled. Some networks block UDP, so fallback matters.
  • Firewalls. If you run your own servers, UDP port 443 must be open.
  • Your code stays the same. Methods, headers and status codes work exactly as before.
  • Measure. Compare real user timings before and after, rather than assuming.