Une brève histoire de HTTP
Si nous allons parler de la transition de HTTP/1.1 à HTTP/2, cela vaut la peine de revenir rapidement dans les années 90 imprégnées de flanelle. À l’époque, HTTP était un protocole simple pour un travail simple : transporter des documents d’un serveur Web à votre ordinateur aussi efficacement que possible. C’est parce que le Web était simple, composé de documents et d’une éclaboussure d’images qui n’avaient rien à voir avec le matériel de l’époque.
HTTP, qui signifie Protocole de transfert hypertexte, a été largement adopté au début des années 1990 pour faciliter cela, en transférant des documents « hypertextes ». Il s’agissait de documents simples comprenant principalement du texte et quelques images, balisés avec du HTML pour ajouter une mise en forme et des liens vers d’autres documents hypertextes. En 1996, la spécification 1.0 a été adoptée. Cette version était élégante et simple pour les besoins du Web du milieu des années 90 : établir une connexion, télécharger un fichier, fermer la connexion et répéter l’opération pour chaque fichier nécessaire pour afficher une page Web.
À la fin des années 90, cependant, les choses ont commencé à changer. Le Web évoluait rapidement au-delà d’un monde glorifié, choisissez votre propre aventure, plein de documents liés sur lesquels cliquer. Les gens ont commencé à acheter et à vendre des choses, nécessitant la sécurité. En plus des images, les gens voulaient regarder des vidéos et éditer des documents et envoyer des cartes de vœux animées loufoques à partir de leurs navigateurs. La stratégie d’une connexion, un fichier était assez lente pour ces nouveaux cas d’utilisation.
Ainsi, en 1999, l’organisme de supervision w3 a mis à jour la spécification HTTP vers la version 1.1. Cette version était un peu un pis-aller, ajoutant des fonctionnalités à la spécification 1.0 destinées à améliorer la vitesse et l’efficacité des serveurs Web alimentant cette nouvelle version «hypermédia» du Web.
Et puis, l’innovation en quelque sorte… au point mort. Comme vous le savez sûrement, le Web a beaucoup plus changé entre 1999 et 2015 qu’il ne l’a fait entre 1996 et 1999, mais pendant ces 16 années, nous avons vécu la spécification HTTP/1.1, faisant entrer de plus en plus d’applications modernes dans le vieillissement. spécification.
La transition HTTP/1.1 vers HTTP/2
Le point de rupture de HTTP/1.1 a été atteint bien avant l’introduction de HTTP/2 en 2015. En fait, Google travaillait sur son propre remplacement pour HTTP/1.1 depuis le début des années 2010, appelé SPDY (prononcé « speedy »). Ce protocole utilisait l’infrastructure existante construite pour HTTP/1.1, mais modifiait le fonctionnement des requêtes sur l’infrastructure. SPDY a utilisé le multiplexage pour télécharger efficacement plusieurs ressources sur une seule connexion et pourrait être « rétroporté » vers des applications existantes avec une couche de traduction.
Il est logique que Google prenne les devants, car ils développaient des applications Web de plus en plus complexes qui fonctionnaient davantage comme des applications de bureau que comme des sites Web, comme GMail et Google Apps. En fait, le protocole SPDY était si bien conçu que w3 l’a utilisé comme base pour HTTP/2.
Ainsi, en 2015, w3 a officiellement adopté la spécification HTTP/2 basée sur SPDY, et tous les principaux navigateurs ont commencé à prendre en charge le protocole.
Pourquoi HTTP/2 est plus rapide que HTTP/1.1
Aujourd’hui, le concept de « pages Web » est anachronique, de la même manière que « filmer en vidéo » quelque chose avec votre smartphone. Les sites Web modernes fonctionnent beaucoup plus comme des applications, avec un flux de données bidirectionnel constant étant une partie essentielle de leur fonctionnalité.
Par exemple, lorsque vous tapez quelque chose dans un document Google, comme je tape cet article en ce moment, chaque frappe envoie des données aux serveurs de Google. Les serveurs de Google traitent ces données, puis renvoient les mises à jour à votre navigateur avec le texte que vous avez tapé, ainsi que d’autres informations utiles telles que des suggestions, le dernier statut de modification du document, et bien plus encore. Sur HTTP/1.1, chacune de vos pressions de touche initierait une nouvelle connexion au serveur, pour envoyer chaque caractère que vous avez tapé sur le fil. Ensuite, votre navigateur devrait constamment « pinger » le serveur de Google pour voir si le statut du document a changé, pour ajouter le caractère à l’écran que vous regardez. C’est une cargaison de connexions, et chacune prend un temps précieux.
Cependant, avec HTTP/2, il s’agit essentiellement d’un flux bidirectionnel constant sur une seule connexion. Le serveur de Google est toujours à l’écoute des données provenant de votre navigateur, et votre navigateur est toujours à l’écoute des données provenant de Google. Il n’y a plus besoin d’envoyer de données, d’attendre une réponse, de mettre à jour l’écran, d’envoyer plus de données, d’attendre une réponse, etc. Au lieu de cela, tout se passe en temps réel. De cette façon, une « page » Web comme un document Google peut se mettre à jour si fréquemment qu’elle ressemble à une application native sur votre ordinateur.
Voici les principales différences entre HTTP1 et HTTP2 :
- HTTP2 est binaire, au lieu de textuel
- HTTP2 est entièrement multiplexé, au lieu d’être ordonné et bloquant
- HTTP2 peut donc utiliser une connexion pour le parallélisme
- HTP2 utilise la compression d’en-tête pour réduire les frais généraux
- HTTP2 permet aux serveurs de « pousser » les réponses de manière proactive dans les caches des clients
Pourquoi devriez-vous passer à HTTP/2
Lorsque Greenlane effectue des audits techniques de sites Web, le passage de HTTP/1.1 à HTTP/2 est l’une des recommandations les plus courantes et les plus percutantes que nous formulons. Nous pouvons souvent améliorer considérablement les performances d’un site Web, avec très peu de coûts ou de temps.
Peut-être que votre entreprise n’a pas de composants dynamiques. Peut-être que vos pages sont principalement des compositions statiques de texte et d’images, tout comme au bon vieux temps du Web. C’est génial – dans votre cas, HTTP/2 est un fruit extrêmement bas ! La simple mise à niveau de votre hébergement pour utiliser HTTP/2 accélérera considérablement la livraison de votre contenu aux utilisateurs, car tout le contenu de votre page sera acheminé sur une seule connexion au lieu de plusieurs connexions.
C’est tellement important, qu’il s’agit probablement d’un test de réussite/échec dans l’algorithme de Google – si nous utilisons Lighthouse de Google pour tester une page, l’outil n’offre même pas de recommandations pour améliorer votre livraison HTTP/1.1 – il dit simplement de passer à HTTP /2.