Velocity 2015 : HTTP2, état des lieux

30 octobre 2015 Par Posté dans Expertise

HTTP2 (peut aussi s’écrire H/2) a été abordé dans plusieurs conférences lors de Velocity 2015 à Amsterdam. Voici donc quelques éléments relatifs à cette nouvelle version du protocole HTTP.

Google, moteur de ce nouveau protocole, dans quel intérêt ?

Rappelons que Google travaille (et fait travailler) énormément l’écosystème dans l’amélioration de la performance des sites web. L’objectif, pour le géant américain, n’est pas de nous faire gagner plus d’argent avec des sites plus véloces, mais bien d’aspirer plus rapidement nos pages web avec autant de moyens. C’est bien pour cela que la performance des sites a été intégrée dans les algorithmes de ranking de google avec le SpeedIndex : en bref, plus le site est véloce, meilleur sera son référencement dans le moteur de recherche, c’est comme cela que Google nous motive…

Maintenant, qu’est-ce-que HTTP2 ?

H/2 est donc une évolution du protocole Http1.1 (standardisé en 1997), protocole applicatif bâti sur TCP et utilisé dans la majorité des échanges de contenu Internet.

Aujourd’hui, Http1.1 n’est plus un protocole très performant car la conception de pages web a considérablement évolué, en terme de nombres d’objets notamment (100 en moyenne dans une page web). C’est pour cela, que depuis quelques années, les navigateurs Internet utilisent de plus en plus de connexions vers les serveurs web pour paralléliser les requêtes et donc obtenir plus rapidement le contenu. Le problème est que chaque établissement de connexion nécessite des aller-retour (3 Way Handshake) d’autant plus longs que le site est loin de l’utilisateur (latence), ceci est encore plus vrai pour les réseaux mobiles.

3WHSFig 1. TCP Tree Way HandShake

Comment Google s’y est pris ? Ils ont mis au point un premier protocole expérimental : SPDDY, intégré à Chrome puis  L’IETF l’a ensuite intégré dans les spécifications de H/2. H/2 est donc officiellement spécifié dans la RFC 7540 depuis Mai 2015.

L’un des principaux bénéfices de H/2 est de permettre le multiplexage de requêtes HTTP au sein d’une même connexion.

H2MultiplexingFig 2. Principe du multiplexage

En plus du multiplexage, une technique de compression des entêtes HTTP (présentant beaucoup de redondance) a été introduite. C’est HPACK qui a été choisi plutôt qu’une compression de type Zlib, notamment pour des raisons de sécurité.

Au delà de sa performance, H/2 est aussi très intéressant car il permet du push serveur, à la différence de Http1.1 ou le contenu est à l’initiative du client.

La spécification de H/2 n’impose pas que le contenu soit crypté cependant, certaines implémentations dans les navigateurs (Chrome et Firefox notamment) ne supporteront H/2 que sur TLS. Le web sera donc de facto de plus en plus crypté.

H/2 améliore-t-il réellement la performance des services web ? Selon Google qui mesure sur ses propres services, le bénéfice serait une accélération du temps de chargement allant de 23 à 45%.

Quels support pour H/2?

Ci-dessous l’ensemble des serveurs qui supportent H/2.

HTTP2-ServersFig 3. Support de H/2 par les serveurs, source https://istlsfastyet.com/

Côté CDN;

HTTP2-CDNFig 4. Support de H/2 par les CDN, source https://istlsfastyet.com/

Enfin côté browser:

HTTP2-Browser

Fig 5. Support de H/2 par les navigateurs (source CanIUse)

H/2 est transparent pour les sites Internet qui n’ont pas été conçus spécialement pour l’utiliser.

En Octobre 2015, 1,8% des sites Internet étaient compatibles H/2 selon W3Techs.

Quelques sites utilisant H/2:

Laisser un commentaire

Votre adresse email ne sera pas publié