Vad är HTTP/3?
HTTP/3 är den tredje stora versionen av HTTP och använder QUIC som transportprotokoll i stället för TCP. Det eliminerar head-of-line-blockering, minskar fördröjningen vid anslutningsetablering och förbättrar prestandan i opålitliga nätverk.HTTP/3 jämfört med HTTP/2
| Funktion | HTTP/2 | HTTP/3 |
|---|---|---|
| Transport | TCP | QUIC (över UDP) |
| TLS | Separat lager | Inbyggt i QUIC |
| Handslag | TCP + TLS (2-3 RTT) | 0-1 RTT |
| Head-of-line-blockering | På TCP-nivå | Eliminerad |
| Anslutningsmigrering | Stöds inte | Stöds |
| Effekt av paketförlust | Blockerar alla strömmar | Endast den berörda strömmen |
Så fungerar HTTP/3
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!)
Funktioner i QUIC-protokollet
| Funktion | Fördel |
|---|---|
| UDP-baserat | Undviker TCP:s head-of-line-blockering |
| Integrerad TLS 1.3 | Alltid krypterat och snabbare handskakning |
| Anslutnings-ID:n | Fortsätter fungera när IP-adressen ändras |
| Multiplexning av strömmar | Oberoende leverans av strömmar |
| Framåtriktad felkorrigering | Minskar behovet av omsändningar |
Anslutningsmigrering
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)
Stöd och införande
| Plattform | HTTP/3-stöd |
|---|---|
| Chrome | 87+ (2020) |
| Firefox | 88+ (2021) |
| Safari | 14+ (2020) |
| Edge | 87+ (2020) |
| Cloudflare | Fullt stöd |
| AWS CloudFront | Fullt stöd |
| nginx | 1.25.0+ (experimentellt) |
Prestandaförbättringar
- Nätverk med hög latens: Sidladdningar kan bli upp till 50 % snabbare.
- Förlustbenägna anslutningar: Ett enskilt paketbortfall stoppar inte alla strömmar.
- Mobilnät: Anslutningen överlever byten mellan Wi-Fi och mobilnät.
- Inledande anslutningar: Etablering med 1 RTT i stället för 3 RTT.
Bästa praxis
1. Distribuera tillsammans med HTTP/2: Webbläsare kan falla tillbaka utan avbrott.
2. Använd Alt-Svc-huvudet: Informera om att HTTP/3 är tillgängligt.
3. Konfigurera UDP korrekt: Kontrollera att brandväggar tillåter QUIC-trafik.
4. Övervaka prestandan: Jämför mätvärden mellan protokollversionerna.
5. Testa mobila scenarier: HTTP/3 ger särskilda fördelar i mobilnät.
Exempel på serverkonfiguration
# Alt-Svc header to advertise HTTP/3
Alt-Svc: h3=":443"; ma=86400
HTTP/3 är framtidens webbtransport och ger snabbare och tillförlitligare anslutningar, särskilt för mobila användare och användare i nätverk med hög latens.