What is HTTP/3?
HTTP/3 is the third major version of HTTP that uses QUIC as its transport protocol instead of TCP, eliminating head-of-line blocking, reducing connection establishment latency, and improving performance over unreliable networks.HTTP/3 vs HTTP/2
| Feature | HTTP/2 | HTTP/3 |
|---|---|---|
| Transport | TCP | QUIC (over UDP) |
| TLS | Separate layer | Built into QUIC |
| Handshake | TCP + TLS (2-3 RTT) | 0-1 RTT |
| Head-of-line blocking | At TCP level | Eliminated |
| Connection migration | Not supported | Supported |
| Packet loss impact | Blocks all streams | Per-stream only |
How HTTP/3 Works
HTTP/2 over TCP:
Client Server
│─────────── SYN ────────────►│
│◄────────── SYN-ACK ─────────│
│─────────── ACK ────────────►│ TCP Handshake
│─────────── ClientHello ────►│
│◄────────── ServerHello ─────│ TLS Handshake
│─────────── Finished ───────►│
│◄────────── Finished ────────│
│─────────── HTTP Request ───►│ (3 RTT minimum)
HTTP/3 over QUIC:
Client Server
│─────── Initial + ClientHello ─►│
│◄────── Initial + ServerHello ──│
│─────── HTTP Request ──────────►│ (1 RTT)
With 0-RTT Resumption:
│─────── 0-RTT + HTTP Request ──►│ (0 RTT!)
QUIC Protocol Features
| Feature | Benefit |
|---|---|
| UDP-based | Avoids TCP head-of-line blocking |
| Integrated TLS 1.3 | Always encrypted, faster handshake |
| Connection IDs | Survives IP address changes |
| Stream multiplexing | Independent stream delivery |
| Forward error correction | Reduces retransmission needs |
Connection Migration
Mobile Network Switch (HTTP/2):
WiFi ──► Connection drops ──► New TCP connection ──► Start over
Mobile Network Switch (HTTP/3):
WiFi ──► Switch to cellular ──► Same QUIC connection continues
(Connection ID persists across IP changes)
Adoption Status
| Platform | HTTP/3 Support |
|---|---|
| Chrome | 87+ (2020) |
| Firefox | 88+ (2021) |
| Safari | 14+ (2020) |
| Edge | 87+ (2020) |
| Cloudflare | Full support |
| AWS CloudFront | Full support |
| nginx | 1.25.0+ (experimental) |
Performance Improvements
- High-latency networks: Up to 50% faster page loads
- Lossy connections: Single packet loss doesn't stall all streams
- Mobile networks: Connection survives WiFi/cellular switches
- Initial connections: 1-RTT vs 3-RTT setup
Best Practices
1. Deploy alongside HTTP/2: Browsers fall back gracefully
2. Use Alt-Svc header: Advertise HTTP/3 availability
3. Configure UDP correctly: Ensure firewalls allow QUIC traffic
4. Monitor performance: Compare metrics across protocol versions
5. Test mobile scenarios: HTTP/3 excels on cellular networks
Server Configuration Example
# Alt-Svc header to advertise HTTP/3
Alt-Svc: h3=":443"; ma=86400
HTTP/3 represents the future of web transport, delivering faster, more reliable connections especially for mobile and high-latency users.