Qu’est-ce que le HTTP2 ?


Technique

Un peu d’histoire

L’HyperText Transfert Protocol (HTTP) a été inventé par Tim Berners-Lee pour créer le World Wide Web, avec également les adresses Web et le langage HTML. Il a pris le relai du protocole FTP qui existait déjà pour transférer des fichiers mais qui n’intégrait pas la notion de format de données.

Image1 Quest ce que le HTTP2 ?

La plupart des grands navigateurs (Chrome, Opéra, Internet Explorer 11, Firefox, Safari, etc.) ont, dans un effort d’uniformisation, supporté son développement et l’ont adopté depuis la fin de l’année 2015.

Qu’est ce qu’un protocole ?

Un protocole de communication est une spécification de plusieurs règles pour un type de communication particulier.

Il est constitué de 3 parties qui sont :

. Le Header: Il se trouve devant et contient des informations telles que la source et l’adresse de destination, ainsi que d’autres éléments.

. Le Payload: Il s’agit de l’information en elle-même transmise par le protocole. Le corps de la requête doit être vide pour les requêtes GET, HEAD, DELETE, CONNECT, TRACE et OPTIONS. Dans le cas des requêtes POST et PUT, il correspond aux données à traiter.

. Le Footer: Il arrive en dernière position et fonctionne comme un champ de contrôle qui s’assure que la requête est transmise exempte d’erreurs.

L’HTTP est un protocole de communication client-serveur.

Les clients HTTP les plus connu sont les navigateurs Web permettant à un utilisateur d’accéder à un serveur contenant des données (pages, base de données, etc.).

L’objectif de la création du HTTP2

La version actuelle de l’HTTP (HTTP1.1)  est utilisée depuis plus de 15 ans. Aujourd’hui, ce protocole est rendu obsolète : les pages Web sont de plus en plus dynamiques, offrent différents formats de contenu multimédia et doivent être plus rapides à charger.

Parmi les différents objectifs de cette création il y a:

.  Conserver les mêmes API (une Interface de Programmation Applicative est un ensemble d’outils qui sert de façade par laquelle un logiciel offre des services à d’autres logiciels) : la compatibilité au nombre colossal de services qui ont été développés au dessus du protocole HTTP (même méthodes, header, code erreur, etc).

. Rendre les requêtes moins coûteuses: HTTP est un protocole coûteux, surtout parce que les entêtes de messages sont verbeux. Chaque requête et réponse HTTP doit avoir un en-tête (header) contenant plus au moins d’informations qui fait parti des données échangées, ce qui augmente le trafic sur le réseau.

. Optimiser les connexions TCP (protocole de contrôle de transmissions) avec les serveurs: HTTP permet d’ouvrir plusieurs connexions TCP parallèles et simultanées vers un serveur. HTTP/2 permettra de regrouper les échanges avec un même serveur au sein d’une seule et même connexion TCP. Cette optimisation des connexions TCP nécessaires au chargement d’un site est intéressante pour les terminaux mobiles, qui possèdent des ressources en CPU (c’est un composant présent dans de nombreux dispositifs électroniques qui exécute les instructions machine des programmes informatiques.) limitées.

Image2 Quest ce que le HTTP2 ?

Les principaux avantages du HTTP2

Les 2 axes majeurs d’amélioration de HTTP2 sont la rapidité et la sécurité de la navigation.

Parmi ces améliorations il y a:

. La compression des headers des requêtes et des réponses, qui permet de réduire la bande passante lorsque les headers et les cookies sont similaires.

. Le multiplexage des requêtes au serveur, qui consiste à faire passer de multiples informations via un seul tuyau de transmission.

Image5 Quest ce que le HTTP2 ?

Cela permet de réduire le nombre de connexions entre le client et le serveur. Les requêtes, quant à elles, sont effectuées simultanément par le navigateur. Ces dernières ne se suivent donc plus, ainsi les prioritaires – telles que les CSS (feuilles de style en cascade) – ne sont plus bloquées par celles qui le sont moins (comme les images).

. Le push des ressources du serveur au navigateur permettra désormais à celui-ci d’envoyer l’ensemble des ressources référencées dans une même page (CSS, JavaScript, etc.), avant que le navigateur n’ait analysé cette page. Cela réduit le nombre de requêtes faites au serveur, ce qui, par conséquent, réduit le temps de chargement de la page avec l’ensemble de ses éléments.

Comparaison: HTTP, SPDY, HTTP2

Le tableau comparatif des performances ci-dessous entre HTTP, SPDY (protocole réseau expérimental) et HTTP2 montre une image plutôt claire de l’augmentation des performances avec ce dernier protocole.

Image3 Quest ce que le HTTP2 ?
Sources:

https://kinsta.com/learn/what-is-http2/#performance_benchmark_comparison_http1_spdy_http2
https://blog.cloudflare.com/http-2-for-web-developers/
https://www.smashingmagazine.com/2016/02/getting-ready-for-http2/
https://en.wikipedia.org/wiki/HTTP/2

Laisser un commentaire