HTTPS and modern HTTP

HTTP/3 and QUIC

See why HTTP/3 uses QUIC over UDP and how independent streams reduce transport-level blocking when packets are lost.

HTTP/3 maps the same HTTP semantics onto QUIC instead of TCP. QUIC runs over UDP, but it is not “UDP instead of reliability.” QUIC implements its own reliable delivery, encryption, and connection management.

The big win is independent streams. In HTTP/2, one lost TCP packet can pause every stream on the connection. In HTTP/3, streams are independent at the transport level. If a packet for one stream is lost, unrelated streams can keep moving.

QUIC bakes in TLS 1.3 security. It can also reduce connection setup time compared to separate TCP and TLS handshakes on older stacks. When a phone switches from Wi-Fi to cellular, QUIC can keep a connection alive because it is not tied to a single IP address and port pair the way TCP is.

You normally do not rewrite application code for HTTP/3. Your hosting platform, CDN, server, and browser negotiate it. Methods, status codes, URLs, and headers remain the same. Cloudflare Pages, nginx with QUIC enabled, and current Chrome versions handle this without changes to your Astro routes or API handlers.

See which protocol a request used in Chrome DevTools. Open Network, right-click the column headers, enable Protocol, and reload. You may see h3 on some requests and h2 on others during the same page load. Not every path supports HTTP/3 yet.

Try from the terminal when your curl build supports it:

curl -I --http3-only https://cloudflare.com/

If your curl lacks HTTP/3 support, you get an error about unknown option. That is fine. The browser check above still works.

Be careful debugging HTTP/3 issues. Firewalls that block UDP can force a fallback to HTTP/2 or HTTP/1.1. If a user reports slowness only on a corporate network, protocol fallback is worth checking.

My advice: enable HTTP/3 at the CDN or reverse proxy level and forget about it in application code. Watch the Protocol column occasionally to confirm it is active.

Lesson completed