Hébergement web

HTTP/2 et HTTP/3

Définition

HTTP/2 et HTTP/3 sont les versions récentes du protocole du Web. HTTP/2 fait circuler de nombreuses requêtes en parallèle sur une seule connexion TCP, sous forme de trames binaires aux en-têtes compressés ; HTTP/3 garde ce principe mais s’appuie sur QUIC, au-dessus d’UDP, pour qu’un paquet perdu ne retarde plus que son propre flux.

HTTP/2 et HTTP/3, Hébergement web

Une page WordPress, c’est rarement un seul fichier : le HTML, puis des dizaines de feuilles de style, de scripts, d’images et de polices. Avec HTTP/1.1, chaque connexion ne traite qu’une requête à la fois, ce qui oblige le navigateur à ouvrir plusieurs connexions et à faire la queue. HTTP/2 puis HTTP/3 ont été conçus pour transporter ces nombreux petits échanges plus efficacement, sans rien changer à la signification des requêtes : méthodes, codes de réponse et en-têtes restent les mêmes.

HTTP/2 : le multiplexage

HTTP/2, aujourd’hui décrit par la RFC 9113 (qui remplace la RFC 7540), découpe les messages en trames binaires. Chaque échange devient un flux, et de nombreux flux circulent en même temps sur une seule connexion : un flux lent n’empêche plus les autres d’avancer. Les en-têtes, très répétitifs d’une requête à l’autre, sont compressés par HPACK.

La RFC reconnaît une limite : le blocage en tête de file de TCP n’est pas résolu. Si un paquet se perd, TCP retient tout ce qui suit jusqu’à sa retransmission, et tous les flux attendent. Pour HTTP/2 sur TLS, la norme impose TLS 1.2 ou plus récent, et la documentation d’Apache rappelle que la plupart des navigateurs ne parlent HTTP/2 qu’avec les adresses https.

Comparatif en trois colonnes. HTTP/1.1 : texte, une requête à la fois par connexion, le navigateur ouvre plusieurs connexions TCP, en-têtes répétés en clair. HTTP/2 : trames binaires, de nombreux flux multiplexés sur une seule connexion TCP, en-têtes compressés par HPACK, mais un paquet TCP perdu bloque tous les flux. HTTP/3 : même multiplexage sur QUIC au-dessus d’UDP, chiffrement TLS 1.3 intégré, compression QPACK, un paquet perdu ne retarde que son flux, annoncé par l’en-tête Alt-Svc.
HTTP/2 regroupe les requêtes sur une connexion ; HTTP/3 change de transport pour supprimer le blocage dû à TCP.

HTTP/3 : changer de transport

HTTP/3 (RFC 9114) reprend le même modèle, mais sur QUIC (RFC 9000), un protocole de transport sécurisé qui circule dans des datagrammes UDP. QUIC gère lui-même les flux : ils sont indépendants, et une perte ne retarde que le flux concerné. Le chiffrement TLS 1.3 fait partie de la poignée de main, ce qui réduit le nombre d’allers-retours avant le premier octet, et une connexion peut survivre à un changement de réseau, du Wi-Fi à la 4G par exemple. La compression des en-têtes passe à QPACK.

Le navigateur découvre HTTP/3 grâce à l’en-tête Alt-Svc, envoyé lors d’une première connexion en HTTP/2 ou HTTP/1.1 : il indique que le même site répond aussi en h3, sur un port UDP. Si un pare-feu bloque UDP, le navigateur reste simplement en HTTP/2.

Vidéo : « Quelles sont les différences entre HTTP 1, 2 & ; 3 ? » (Grafikart.fr)

Pour WordPress

  • Vérifiez la version utilisée dans l’onglet Réseau des outils de développement du navigateur (colonne Protocole : h2 ou h3).
  • Le plus simple est souvent un CDN, qui parle HTTP/3 aux visiteurs quel que soit votre serveur. LiteSpeed le propose aussi ; pour Nginx, le module HTTP/3 existe depuis la version 1.25.0, toujours présenté comme expérimental par sa documentation.
  • Sur Apache, HTTP/2 passe par mod_http2 et la directive Protocols h2 http/1.1 ; la documentation recommande le module MPM event, car avec prefork une connexion ne traite qu’une requête à la fois.
  • Ouvrez UDP 443 dans le pare-feu du serveur si vous activez HTTP/3 vous-même.

L’effet sur les performances dépend du site, du réseau et du nombre de fichiers ; les signaux de performance comptés par Google sont abordés dans notre article HTTPS, HSTS et en-têtes de sécurité.

Pour aller plus loin

  • Article HTTPS, HSTS et en-têtes de sécurité : ce que Google prend vraiment en compte

Sources

  1. RFC 9113 : HTTP/2 (lien externe, nouvel onglet)
  2. RFC 9114 : HTTP/3 (lien externe, nouvel onglet)
  3. RFC 9000 : QUIC, A UDP-Based Multiplexed and Secure Transport (lien externe, nouvel onglet)
  4. Apache HTTP Server : HTTP/2 guide (lien externe, nouvel onglet)

Toutes les définitions

La sécurité WordPress, sans le bruit

Un e-mail quand ça compte : nouvelles attaques observées, mises à jour de l’extension et guides pratiques. Pas de spam, désinscription en un clic.

Commencez gratuitement, passez à Pro quand vous êtes prêt

La version gratuite masque déjà WordPress et déplace la page de connexion. Pro ajoute alias, double authentification et surveillance.