Qu'est-ce que HTTP/3 ?
HTTP/3 est la troisième version majeure de HTTP qui utilise QUIC comme protocole de transport au lieu de TCP, éliminant le blocage en tête de ligne, réduisant la latence de l'établissement de connexion et améliorant les performances sur les réseaux peu fiables.HTTP/3 vs HTTP/2
| Fonctionnalité | HTTP/2 | HTTP/3 |
|---|---|---|
| Transports | TCP | QUIC (sur UDP) |
| TLS | Couche séparée | Construit dans QUIC |
| Serre-mains | TCP + TLS (2-3 RTT) | 0-1 RTT |
| Blocage de la tête de ligne | Au niveau TCP | Éliminé |
| Migration des connexions | Non pris en charge | Appui |
| Impact des pertes de paquets | Bloque tous les flux | Par voie seulement |
Comment HTTP/3 fonctionne
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!)
Caractéristiques du protocole QUIC
| Fonctionnalité | Avantages |
|---|---|
| UDDP | Évite le blocage de la tête de ligne TCP |
| TLS intégré 1.3 | Toujours chiffré, poignée de main plus rapide |
| IDs de connexion | Survit aux changements d'adresse IP |
| Multiplication des flux | Distribution indépendante |
| Correction d'erreur ultérieure | Réduit les besoins de retransmission |
Migration des connexions
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)
État d'adoption
| Plateforme | Prise en charge HTTP/3 |
|---|---|
| Chrome | 87+ (2020) |
| Firefox | 88+ (2021) |
| Safari | 14 ans et plus (2020) |
| Bord | 87+ (2020) |
| Nuageux | Soutien total |
| AWS CloudFront | Soutien total |
| nginx | 1.25.0+ (expérimental) |
Amélioration des performances
- Réseaux à forte latence: Jusqu'à 50 % plus rapide
- Raccordements perdus: La perte d'un seul paquet ne bloque pas tous les flux
- Réseaux mobiles: La connexion survit aux commutateurs WiFi/cellulaires
- Connexions initiales: configuration 1-RTT vs 3-RTT
Meilleures pratiques
1. Déployer avec HTTP/2: Les navigateurs reculent gracieusement
2. Utiliser l'en-tête Alt-Svc: Publicité de la disponibilité HTTP/3
3. Configurer correctement UDP: Veiller à ce que les pare-feu permettent le trafic QUIC
4. Performance du moniteur: Comparer les paramètres entre les versions du protocole
5. Tester les scénarios mobiles: HTTP/3 excelle sur les réseaux cellulaires
Exemple de configuration du serveur
# Alt-Svc header to advertise HTTP/3
Alt-Svc: h3=":443"; ma=86400
HTTP/3 représente l'avenir du transport web, fournissant des connexions plus rapides et plus fiables, en particulier pour les utilisateurs mobiles et à haute latence.