Wat is HTTP/3?
HTTP/3 is de derde hoofdversie van HTTP en gebruikt QUIC als transportprotocol in plaats van TCP. Hierdoor verdwijnen head-of-line-blokkering en wordt de latentie bij het opzetten van verbindingen lager, met betere prestaties op onbetrouwbare netwerken.HTTP/3 versus HTTP/2
| Functie | HTTP/2 | HTTP/3 |
|---|---|---|
| Transport | TCP | QUIC (via UDP) |
| TLS | Afzonderlijke laag | In QUIC ingebouwd |
| Handshake | TCP + TLS (2-3 RTT) | 0-1 RTT |
| Head-of-line-blokkering | Op TCP-niveau | Opgeheven |
| Migratie van verbinding | Niet ondersteund | Ondersteund |
| Effect van pakketverlies | Blokkeert alle streams | Alleen per stream |
Hoe HTTP/3 werkt
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!)
Functies van het QUIC-protocol
| Functie | Voordeel |
|---|---|
| Op UDP gebaseerd | Vermijdt head-of-line-blokkering van TCP |
| Geïntegreerde TLS 1.3 | Altijd versleuteld, snellere handshake |
| Connection-ID's | Blijft werken bij wijzigingen van IP-adres |
| Streammultiplexing | Onafhankelijke levering van streams |
| Forward error correction | Minder hertransmissies nodig |
Migratie van verbindingen
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)
Adoptie
| Platform | HTTP/3-ondersteuning |
|---|---|
| Chrome | 87+ (2020) |
| Firefox | 88+ (2021) |
| Safari | 14+ (2020) |
| Edge | 87+ (2020) |
| Cloudflare | Volledige ondersteuning |
| AWS CloudFront | Volledige ondersteuning |
| nginx | 1.25.0+ (experimenteel) |
Prestatieverbeteringen
- Netwerken met hoge latentie: pagina's laden tot 50% sneller
- Verbindingen met pakketverlies: één verloren pakket blokkeert niet alle streams
- Mobiele netwerken: de verbinding blijft bestaan bij wisselen tussen wifi en mobiel
- Eerste verbindingen: opzetten in 1 RTT tegenover 3 RTT
Beste praktijken
1. Implementeer naast HTTP/2: browsers vallen soepel terug
2. Gebruik de Alt-Svc-header: maak HTTP/3-beschikbaarheid bekend
3. Configureer UDP correct: zorg dat firewalls QUIC-verkeer toestaan
4. Monitor prestaties: vergelijk metingen tussen protocolversies
5. Test mobiele scenario's: HTTP/3 blinkt uit op mobiele netwerken
Voorbeeld van serverconfiguratie
# Alt-Svc header to advertise HTTP/3
Alt-Svc: h3=":443"; ma=86400
HTTP/3 vertegenwoordigt de toekomst van webtransport en levert vooral voor mobiele gebruikers en gebruikers met hoge latentie snellere, betrouwbaardere verbindingen.