Migrer vers HTTP/3 et QUIC en 2026 — guide complet Nginx, Caddy, Cloudflare
HTTP/3 (RFC 9114) est supporté par 95 %+ des navigateurs et représente ~30 % du trafic web mondial. Basé sur QUIC (UDP + TLS 1.3 intégré), il réduit le TTFB de 12 % en moyenne et jusqu'à 55 % sur mobile. Voici comment migrer avec Nginx, Caddy ou Cloudflare — configs complètes incluses.

HTTP/3 et QUIC : comprendre le changement
5 avantages clés de HTTP/3 vs HTTP/2 :
- 0-RTT connection : connexion instantanée pour les visiteurs récurrents
- Pas de head-of-line blocking : un paquet perdu ne bloque plus tous les streams
- Connection migration : passage WiFi→4G sans interruption
- Chiffrement obligatoire : TLS 1.3 intégré dans le protocole
- Implémentation en espace utilisateur : mises à jour sans toucher au kernel
Benchmarks réels : Cloudflare mesure un TTFB de 176 ms (H3) vs 201 ms (H2) = 12,4 % plus rapide. Sur réseau mobile instable : 52 % plus rapide. Avec perte de paquets élevée : jusqu'à 88 % d'amélioration.
Configurer Nginx pour HTTP/3
Prérequis : Nginx 1.25.0+, OpenSSL 3.5.1+ (pour 0-RTT), port UDP 443 ouvert.
http {
quic_retry on;
quic_gso on;
server {
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
http3 on;
ssl_protocols TLSv1.3;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_early_data on;
add_header Alt-Svc 'h3=":443"; ma=86400' always;
}
}Directives clés : quic_retry on (anti-amplification), quic_gso on (Linux), reuseport obligatoire. Variable $http3 pour le logging.
Caddy et Cloudflare : le chemin facile
Caddy active HTTP/3 par défaut — zéro configuration :
example.com {
root * /var/www/html
file_server
}Docker : exposer 443:443/udp en plus de TCP. Certificats Let's Encrypt automatiques.
Cloudflare gère HTTP/3 à l'edge — votre serveur d'origine n'a pas besoin de support QUIC. Dashboard → Speed → Protocol Optimization → HTTP/3 On. C'est un simple toggle.
Problèmes courants et solutions
- Firewall bloquant UDP 443 (erreur n°1) :
sudo ufw allow 443/udp - Alt-Svc mal configuré : doit être envoyé sur les réponses HTTP/2
- 0-RTT : risque de replay attack — activer uniquement pour les requêtes idempotentes (GET)
- CSF (ConfigServer Firewall) : désactiver UDPFLOOD
Vérification : curl --http3 -I https://example.com. Chrome DevTools : colonne Protocol → chercher « h3 ». Outils en ligne : http3check.net, http3.pro.