HTTP/3 : présentation du nouveau Hypertext Transfer Protocol

Le HTTP/3 est le nouveau membre de la famille de protocoles HTTP et doit remplacer ses prédécesseurs : HTTP/1, HTTP/2 et HTTP-over-QUIC. À l’heure actuelle, le HTTP/3 est encore en développement, mais il est déjà supporté par Microsoft Edge, Firefox et depuis avril 2020 par Safari.

La troisième version du standard HTTP a tout d’abord été lancée en tant que « HTTP-over-QUIC » et se base, en tant que protocole expérimental, sur l’UDP. Au départ, HTTP-over-QUIC devait succéder au HTTP/2, mais depuis janvier 2020, ce projet est développé sous le nom de HTTP/3. Il reste à voir à quelle vitesse ce nouveau standard saura s’imposer. Dans tous les cas, le HTTP/3 promet des temps de chargement réduits et encore plus de sécurité grâce au transfert sécurisé des données par UDP. Cependant, si l’on considère, par exemple, que le protocole HTTP/2 est pris en charge par 80 % des navigateurs depuis sa publication en 2015, mais que son utilisation par les fournisseurs progresse lentement, on ne peut pas s’attendre à une augmentation immédiate de la prise en charge du HTTP/3.

Qu’est-ce que le HTTP/3 ?

En novembre 2018, seulement trois ans après le lancement du standard HTTP/2, la Internet Engineering Task Force (IETF) publiait un nouvel Hypertext Transfer Protocol Standard : le protocole HTTP/3. Avec le HTTP/3 cependant, l’IETF n’a en aucun cas réinventé l’Hypertext Transfer Protocol : elle a seulement pris la mesure de l’époque et conçu un protocole Web qui offre une transmission des données plus rapide, plus de sécurité et une connexion plus efficace. En 2012 déjà, Google avait développé le successeur du HTTP/2 nommé QUIC (Quick UDP Internet Connections) et l’avait implémenté en tant que HTTP-over-QUIC dans de nombreux produits.

Le HTTP/3 réunit désormais les avantages du protocole de transfert HTTP/2 et de HTTP-over-QUIC dans un seul standard pour une transmission des données plus rapide et plus stable. Selon les prévisions, le HTTP/3 devrait remplacer le HTTP/2 basé sur le protocole TCP par une approche basée sur QUIC et donc UDP.

Que contient le HTTP/3 ?

Pour comprendre la composition du protocole HTTP/3, il faut d’abord comprendre la fonction de QUIC, UDP et du HTTP/2. En effet, le HTTP/3 est par essence un amalgame de ces trois composants. Le nom HTTP-over-QUIC indique que le transfert de données s’effectue par UDP au lieu de TCP.

HTTP/2 utilise TCP, le protocole de transmission le plus utilisé sur Internet. Le protocole TCP gère les connexions via des handshake à plusieurs niveaux et transmet les paquets de données de manière chronologique. Une transmission utilisant le protocole TCP ne se poursuit qu’une fois le paquet transmis et reçu. La transmission est sécurisée par ce qu’on appelle des ACK, c’est-à-dire des confirmations de commande et de livraison et des numéros de test. Dans le protocole TCP, les données transmises contiennent un en-tête avec des paramètres qui aident les processus de l’expéditeur à se connecter aux processus peer du destinataire.

En termes de transmission complète des données, TCP est très fiable, mais s’accompagne cependant « d’embouteillages » de données et de temps de chargement plus longs, car toutes les transmissions s’arrêtent jusqu’à ce que les paquets de données perdus soient transmis avec succès. Avec le HTTP/2, la famille de protocole Internet atteint donc ses limites dans une certaine mesure, car une accélération de la transmission de données est impossible sans nouveau protocole.

Google a donc développé proactivement son propre protocole de transfert : QUIC. QUIC évite les « embouteillages » de données en ayant recours à une transmission UDP sans connexion basée sur les datagrammes. Comme TCP, l’UDP travaille au niveau de la couche de transport, mais renonce à la confirmation expéditeur-destinataire. Les autres flux ne doivent plus attendre la transmission réussie des précédents. Les allers-retours entre client et serveur sont donc considérablement raccourcis. L’IETF a su reconnaître les avantages de ce nouveau protocole et, en 2018, a lancé HTTP-over-QUIC comme successeur du HTTP/2.

Sur le principe, le protocole HTTP reste identique. Il se compose toujours d’un en-tête et d’un corps de message et utilise des verbes, des cookies et la mise en cache. La différence réside dans la manière de transmettre les données et le chiffrement intégré en amont.

Quelles sont les fonctions du protocole HTTP/3 ?

Le fait de faire fonctionner le protocole HTTP/2 via QUIC a permis d’apporter des modifications fonctionnelles concrètes qui ont conduit via HTTP-over-QUIC à la création du HTTP/3.

La fonction majeure de la troisième édition du HTTP est l’utilisation exclusive d’URL HTTPS. Toutes les anciennes URL non sécurisées seront signalées comme dangereuses ou non chiffrées. Grâce à l’utilisation de QUIC et UDP, HTTP/3 évite notamment l’étape du chiffrement TSL au niveau TCP et utilise automatiquement un chiffrement TLS 1.3. Le HTTP/3 est ainsi utilisable uniquement lorsqu’un chiffrement existe.

Parmi les nouvelles fonctions, on retrouve notamment la connexion permanente en cas de changement de réseau lors de la transmission des données (du côté client ou serveur), un nombre considérablement réduit de paquets de données, car les transmissions de paquets s’effectuent via des flux parallèles et une « forward error correction », correction d’erreur directe, qui s’effectue directement au niveau de QUIC.

Quels sont les avantages du HTTP/3 ?

Les avantages du HTTP/3 sont notamment une vitesse de transmission plus élevée, des temps de chargement plus courts et une connexion stable. En se basant sur UDP, le HTTP/3 évite les points faibles du TCP tout en conservant les avantages du HTTP/3 et de HTTP-over-QUIC.

Si le HTTP/2 utilise le multiplexage, c’est-à-dire le téléchargement simultané de données, cette seconde version souffre encore du Head-of-line Blocking (blocage de tête de ligne (HOL)). Il s’agit d’un goulot d’étranglement numérique, qui bloque tous les flux lorsqu’une perte de paquet se produit dans un flux. Avec l’utilisation de UDP, le HTTP/3 n’attend pas la réussite de la transmission et continue le transfert.

Le HTTP/3 évite les handshakes préliminaires pour vérifier la sécurité d’une connexion. Au lieu d’envoyer des requêtes de sécurité à la couche TLS supérieure, le cryptage se fait directement via le protocole de transfert. Le HTTP/3 réduit ainsi le temps d’établissement de la connexion de deux à un seul passage.

Pour assurer les téléchargements, le HTTP/3 n’est plus lié aux adresses IP, mais utilise des identifiants de connexion individuels qui permettent un téléchargement constant même en cas de changement de réseau.

Pour les utilisateurs de réseau mobile, le HTTP/3 devrait assurer une navigation plus agréable grâce à une connexion plus stable, plus flexible et plus sûre.

HTTP/2 vs HTTP/3 : similarités et différences

Découvrez ci-dessous un rapide résumé des similarités et différences entre le HTTP/2 et le HTTP/3.

Différences :

  • Le HTTP/3 utilise UDP contrairement au HTTP/2 qui utilise TCP.
  • Grâce au chiffrement intégré TLS 1.3, le HTTP/3 évite une requête de chiffrement supplémentaire (handshake) au niveau TLS et supprime ainsi les requêtes de sécurité superflues.
  • Contrairement au HTTP/2, le HTTP/3 supporte uniquement les connexions chiffrées en raison du chiffrement intégré TLS 1.3.

Similarités :

  • Les deux protocoles utilisent la compression d’en-tête. Le HTTP/3, cependant, remplace la compression HPACK HTTP/2 liée à une séquence de paquets par QPACK.
  • Comme le HTTP/2, le HTTP/3 prend en charge le Server Push, c’est-à-dire l’expédition accélérée des données CSS et JavaScript dont le navigateur a besoin pour afficher une page.
  • Les deux protocoles utilisent le multiplexage requête-réponse, c’est-à-dire les flux parallèles de données de différentes ressources.
  • La priorisation des flux dans les deux protocoles assure que le contenu de la page est chargé en priorité sans attendre la notification de réussite des autres requêtes.
Note

Le HTTP/2 a longtemps été considéré comme un protocole de transfert efficace et fiable. Découvrez dans notre article sur le HTTP/2 comment il a été sécurisé et amélioré avant d’être remplacé par le HTTP/3.

À quels problèmes pourrait être confronté le HTTP/3 ?

De nombreuses critiques du HTTP/3 se basent sur le fait qu’il arrive très tôt après le lancement du protocole HTTP/2 et que l’UDP est un protocole réseau critiqué. En outre, ce sont avant tout les utilisateurs qui bénéficieront du nouveau protocole HTTP. Les fournisseurs se voient en revanche confrontés à un certain nombre d’obstacles avec le remplacement de TCP et TLS par UDP et QUIC

La vérification de sécurité et le chiffrement ne se font plus par TLS, mais directement par UDP et UDP doit livrer autant de paquets aussi vite que possible et les fournisseurs craignent que le trafic de données ne soit plus suffisamment contrôlé sans l’authentification TLS. La sécurité des applications et des données est donc la principale critique des fournisseurs d’accès à Internet. Le TCP était considéré comme un protocole fiable et axé sur la connexion en raison de sa règle claire de requête-réponse. Le fait que QUIC prenne lui-même en charge un certain nombre d’étapes secondaires fait craindre une réduction des possibilités de contrôle par les fournisseurs en HTTP/3 et donc une multiplication des logiciels malveillants dans les flux de données.

Dans la mesure où l’offre croissante de données médiatiques – telles que les images, les vidéos et autres éléments de réseaux sociaux – exige une transmission de données plus rapide, il faut espérer, dans l’intérêt des utilisateurs, que la famille des protocoles Internet se mette en mouvement et que les fournisseurs seront en mesure de suivre l’évolution toujours plus rapide d’Internet.