En route vers un web plus sûr et plus rapide avec http/2

Technologie et développement

Notre agence web vous dit tout sur le nouveau protocole Http/2

Ca y est ! La nouvelle version du célèbre protocole de transfert de contenus web est prête !

 

En effet, depuis son existence il y a 20 ans et ses dernières mises à jour en Mai 96 (http/1.0) et Janvier 97 (http/1.1) ce protocole n’avait pas été amélioré. Il était donc temps que le groupe de travail de l’Internet Engineering Task Force (IETF) dirigé par Mark Nottingham se mette au travail !

Il reste encore de nombreuses étapes avant l’implémentation de ce nouveau standard dans les navigateurs mais les fonctionnalités sont bien là. Dans notre agence web, on a hâte de pouvoir le mettre en place !

 

Http/2 n’est pas le fruit du hasard. Il s’agit en réalité d’un héritage des travaux effectués par Google. En effet, en 2012, Google a implémenté son protocole appelé SPDY dans Chrome et dans Firefox. Ce protocole avait d’ailleurs était utilisé par des sites importants tels que Facebook, Youtube ou Twitter.

Aujourd’hui, l’IETF s’est inspiré de ces travaux pour en faire un standard sous la forme de http/2. D’ailleurs, Google a annoncé qu’il renonçait à sa version pour utiliser le nouveau protocole. C’est une bonne chose car cela signifie qu’à terme, tout le web va être uniformisé.

 

 

** Ce que nous pouvons attendre d’http/2 **

 

Pour nous simples « utilisateurs » du web, il est fort probable que nous ne percevions pas immédiatement les effets de l’intégration d’http/2 dans nos navigateurs. Et pourtant, nous devrions pouvoir surfer de façon plus rapide et plus fluide.

 

Les différents points d’évolutions sont les suivants :

 

-          Optimisation des envois de requêtes

Le principe du « multiplexing » a été utilisé. Cela signifie que les messages pourront être envoyés de manière simultanée et plus de façon séquentielle comme c’est le cas actuellement. De plus, ce mécanisme a été couplé à la compression des entêtes ce qui contribue notamment à optimiser la bande passante des réseaux mobiles.

 

-           Optimisation des connexions avec les serveurs

Actuellement, Http peut ouvrir plusieurs connexions TCP en parallèle et en simultanée vers un serveur. Cela peut engendrer des encombrements sur ce serveur ; Http/2 propose de résoudre (ou au moins de réduire) ce problème en regroupant les échanges au sein d’une seule et unique connexion TCP.

De plus, il sera également possible d’interrompre une connexion TCP sans la fermer. En effet, un logiciel maintiendra active la connexion même si l’utilisateur a décidé de l’abandonner. Ainsi, une éventuelle reprise du dialogue ultérieurement sera moins gourmande pour la bande passante. (Il faut rappeler qu’aujourd’hui, toute connexion abandonnée est fermée)

 

-          Pré-remplissage des caches des navigateurs

Http/2 utilise le mécanisme de « cache pushing » pour que le serveur puisse envoyer des informations à un client pour un usage ultérieur.

Actuellement, le navigateur web demande d’abord le contenu HTML d’une page pour ensuite demander les feuilles de style CSS ce qui crée un dialogue entre le navigateur et le serveur qui peut être couteux en temps. Avec ce nouveau protocole http/2, le serveur enverra le HTML et les feuilles de CSS d’un seul coup ce qui économisera des allers-retours non nécessaires. Ce mécanisme est réversible, il peut être débrayé si besoin.

 

-          Aide aux chiffrements des échanges

Par ses performances, cette nouvelle version du protocole réduit l’impact négatif du chiffrement sur la rapidité de chargement d’un site : impact négatif pour le référencement et impact négatif pour la perception qualité chez les utilisateurs.

Avec ces échanges chiffrés plus performants, ce nouveau protocole rendra le web plus sûr pour les utilisateurs.

 

Enfin, d’un point de vue implémentation, il faut souligner que ce nouveau protocole conserve les mêmes API. La compatibilité entre les développements actuels et http/2 a été maintenue afin d’éviter que les développeurs en agence web par exemple soient obligés de retoucher leurs codes.  Ainsi, il suffira simplement de remplacer la bibliothèque de fonction http/1 par la bibliothèque http/2 pour que l’implémentation soit prise en compte : les méthodes (GET, PUSH…) entêtes, statuts et code d’erreur (404 par exemple) ont été conservés.

 

 

Il existe encore d’autres évolutions envisagées mais ces dernières n’ont pas été implémentées dans cette version http/2 pour ne pas retarder sa sortie et son déploiement. Cela peut laisser entrevoir par la suite un http/3 ! Lorsque la transition entre http et http/2 aura été faite, il sera effectivement plus facile d’introduire de nouvelles versions.

 

Je ne sais pas chez vous, mais dans notre agence web on a hâte d’en voir plus !