Qu’est-ce que HTTP/3 ?

Sommaire

HTTP c’est la colonne vertébrale du web. Sans lui, rien ne se passe : il régit la manière dont communiquent les navigateurs et les serveurs web. C’est grâce à ce protocole qu’un internaute peut accéder à un contenu !

HTTP/3 est donc la nouvelle norme (depuis l’été 2022) qui emboîte le pas à HTTP/1.1 (paru en 1997) et HTTP/2 (paru en 2015) et qui promet de belles améliorations pour l’expérience utilisateur, en termes de performances, de fiabilité et de sécurité.

HTTP/3 s’adapte aux usages mobiles

On ne vous apprend rien : le trafic aujourd’hui est majoritairement mobile, ce qui n’était évidemment pas le cas aux débuts du protocole HTTP. Cet usage mobile implique souvent un changement de réseau inopiné en raison de nos déplacements (par exemple lorsqu’on passe du WiFi aux données cellulaires, lorsqu’on quitte la maison ou le bureau ou qu’on voyage en train).

Malheureusement, HTTP/2 présente une limite importante pour les connexions mobiles : le TCP Head Of Line blocking. Essayons de comprendre ce qui se cache derrière ce nom barbare.

HTTP/2 est en effet basé sur le protocole de transport TCP orienté “connexion” : lorsqu’une machine A envoie des données à une machine B, elles doivent d’abord établir une connexion (handshake TCP). Pour cela, la machine B est prévenue de l’arrivée des données et envoie un accusé de réception. Certes cela renforce la fiabilité de la connexion, mais les erreurs sont bloquantes : dès lors qu’un transfert échoue, tous les autres transferts sont mis en attente jusqu’à ce que l’erreur soit résolue ou que la connexion soit considérée comme ayant échoué et établie à nouveau.
Ainsi dès lors que nous sommes en situation de mobilité, le changement de réseau ou la perte de paquets crée des erreurs et tant que la connexion n’est pas considérée comme échouée, le protocole TCP continue d’envoyer des paquets. Cela génère donc une succession de timeout. Résultat : l’expérience utilisateur est ralentie (on attend pendant 30s, rien ne se passe et on finit par recharger la page).

A l’inverse, HTTP/3, se base sur le protocole QUIC (Quick UDP Internet Connections), orienté “non connexion” : lorsqu’une machine A envoie des données à une machine B, il n’y a pas d’établissement préalable de connexion. La machine B n’est pas prévenue de l’arrivée des données et les reçoit sans envoyer d’accusé de réception, le flux est unidirectionnel. Dans le cas où un paquet se perd, là où le protocole TCP “tourne en boucle” jusqu’à la récupération de tous les paquets, le protocole QUIC redemande simplement le dit paquet. La connexion n’est plus bloquante, il n’y a donc plus de succession de timeout lors du changement de réseau. La connexion ne souffre plus des ralentissements rencontrés avec HTTP/2.

Maintenant que les présentations avec TCP et QUIC sont faites, peut-être que cette dernière méthode vous paraît moins sûre ou moins fiable. On vous rassure : QUIC intègre nativement un système de chiffrement et de sécurisation.

HTTP/3 pour des connexions mieux sécurisées

​​Le nouveau protocole de transport QUIC intègre aussi nativement une nouvelle méthode de chiffrement, équivalente au TLS1.3, appelée QUIC Crypto. 

Le chiffrement se fait donc directement dans la couche de transport, plutôt que dans la couche d’application. Ainsi, la connexion est par essence toujours chiffrée, ce qui représente un changement important ! En effet, auparavant, avec le protocole HTTPS, les connexions de la couche de chiffrement et de la couche de transport se faisaient séparément. Les connexions TCP pouvaient donc transporter des données chiffrées ou non chiffrées. Désormais QUIC établit des connexions cryptées par défaut au niveau de la couche transport – les données de la couche application seront ainsi toujours chiffrées.

Qu’apporte concrètement HTTP/3 ?

Parlons de choses concrètes ! Qu’a-t-on à gagner avec HTTP/3 ?

Vous l’aurez compris, HTTP/3 accélère la navigation web tout en améliorant la sécurité. Mais dans quelle mesure ?

Request metrics a réalisé des tests pour estimer les gains de performance grâce à HTTP/3.

Afin de se rapprocher le plus possible d’une utilisation réelle, le test consistait en trois scénarios : 

  • un petit site, 
  • un site riche en contenu (beaucoup d’images et quelques JS)
  •  et une SPA (lourde en JS). 

Résultat, HTTP/3 est :

  • 200 ms plus rapide pour le petit site
  • 325 ms plus rapide pour le site de contenu
  • 300 ms plus rapide pour une SPA

Si ces tests mériteraient d’être plus poussés, ils permettent toutefois de donner une première idée des gains apportés par ce nouveau protocole. 

Alors vous vous en doutez, les aficionados de la webperf que nous sommes, n’allons pas en rester là. On vous en dit bientôt (beaucoup) plus.

D’ici là, souvenez-vous que HTTP/3 est un nouveau pas vers un web plus performant et plus sécurisé. Et… stay tuned!

En attendant, découvrez comment optimiser les performances de votre site facilement et rapidement : 

Découvrez nos fonctionnalités

Sommaire
Demandez un diagnostic de vos temps de chargement !
Solutions