Qu’est-ce que HTTP/3 ?
HTTP/3 est la troisième version majeure de HTTP. Elle utilise QUIC comme protocole de transport au lieu de TCP, élimine le blocage en tête de ligne, réduit la latence d’établissement des connexions et améliore les performances sur les réseaux peu fiables.HTTP/3 par rapport à HTTP/2
| Fonctionnalité | HTTP/2 | HTTP/3 |
|---|---|---|
| Transport | TCP | QUIC (sur UDP) |
| TLS | Couche distincte | Intégré à QUIC |
| Établissement | TCP + TLS (2-3 RTT) | 0-1 RTT |
| Blocage en tête de ligne | Au niveau TCP | Éliminé |
| Migration de connexion | Non prise en charge | Prise en charge |
| Effet des pertes de paquets | Bloque tous les flux | Flux concerné uniquement |
Fonctionnement de 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!)
Fonctionnalités du protocole QUIC
| Fonctionnalité | Avantage |
|---|---|
| Fondé sur UDP | Évite le blocage en tête de ligne de TCP |
| TLS 1.3 intégré | Toujours chiffré, établissement plus rapide |
| Identifiants de connexion | Résistent aux changements d’adresse IP |
| Multiplexage des flux | Livraison indépendante des flux |
| Correction d’erreurs anticipée | Réduit le besoin de retransmission |
Migration de connexion
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 de l’adoption
| Plateforme | Prise en charge HTTP/3 |
|---|---|
| Chrome | 87+ (2020) |
| Firefox | 88+ (2021) |
| Safari | 14+ (2020) |
| Edge | 87+ (2020) |
| Cloudflare | Prise en charge complète |
| AWS CloudFront | Prise en charge complète |
| nginx | 1.25.0+ (expérimental) |
Améliorations des performances
- Réseaux à forte latence : chargement des pages jusqu’à 50 % plus rapide
- Connexions avec pertes : une seule perte de paquet ne bloque pas tous les flux
- Réseaux mobiles : la connexion survit aux changements Wi-Fi/réseau cellulaire
- Connexions initiales : configuration en 1 RTT contre 3 RTT
Bonnes pratiques
1. Déployer avec HTTP/2 : les navigateurs reviennent progressivement à HTTP/2
2. Utiliser l’en-tête Alt-Svc : annoncer la disponibilité de HTTP/3
3. Configurer UDP correctement : vérifier que les pare-feu autorisent le trafic QUIC
4. Surveiller les performances : comparer les mesures entre versions du protocole
5. Tester les scénarios mobiles : HTTP/3 excelle sur les réseaux cellulaires
Exemple de configuration serveur
# Alt-Svc header to advertise HTTP/3
Alt-Svc: h3=":443"; ma=86400
HTTP/3 représente l’avenir du transport web. Il fournit des connexions plus rapides et plus fiables, en particulier aux utilisateurs mobiles et aux utilisateurs disposant de réseaux à forte latence.