Arrivée de HTTP/2, petit quid sur ses performances




Le successeur de HTTP/1.0 et de HTTP/1.1, le protocole réseau HTTP/2 est enfin finalisé. HTTP étant la fondation même du web, c’est une évolution majeure pour l’internet du futur. Son utilisation devrait se généraliser d’ici peu. Alors, HTTP/2, qu’est-ce que ça change ? Quel est son gain au niveau performance ?

Petit rappel, une évolution nécessaire

Ce changement a été initié en réponse au protocole SPDY de Google. Le SPDY résout les problèmes de performance du premier HTTP. Jusqu’ici, HTTP/1 utilisait plusieurs connexions pour charger les ressources. Mais, elles s’effectuaient l’une après l’autre. Ce qui entrainait des latences et le problème bien connu de temps d’attente infinis si l’un des chargements échouait.

HTTP/1.x contournait le problème en n’effectuant qu’une requête par objet. A charge au navigateur d’effectuer les traitements en parallèle. Bien sûr, cela nécessitait l’ouverture de plusieurs connexions au serveur, ce qui augmentait le nombre de ressources réseau et donc – encore une fois – la latence.

La solution HTTP/2

HTTP/2 – tout comme SPDY – est censé résoudre le problème de latence en utilisant une unique connexion TCP pour faire transiter plusieurs flux bidirectionnels et multiplexés. Chaque flux peut transporter une paire de requête/réponse. Ils sont aussi indépendants l’un par rapport aux autres, c’est-à-dire que chaque flux continue son traitement quel que soit la vitesse de traitement des autres flux. Il n’y a plus de concept de traitement séquentiel comme pour le HTTP/1.x.

Par ailleurs, HTTP/1.x était un protocole texte avec des requêtes et des réponses basées sur du texte. Avec HTTP/2, le protocole devient binaire et passe directement dans le « tuyau » de la connexion TCP (sans transformation en texte). Il devrait gagner ainsi en performance et en stabilité.

Ces concepts ont été repris du SPDY tout en y apportant quelques autres améliorations notables, telles que HPACK, une compression et sécurisation dédiée aux en-têtes.

Le Match !

En début d’année, l’équipe de l’outil HttpWatch (excellent outil pour sniffer/jouer les requêtes HTTP et analyser leurs performances) a publié un article à l’occasion de la sortie de Firefox 35, supportant désormais le protocole HTTP/2 par défaut. Ils en ont profité pour confronter les performances entre HTTPS, SPDY/3.1 et HTTP/2. Les résultats sont des plus intéressants.

Au niveau des en-têtes, HTTP/1.1 n’utilise pas de compression. SPDY et HTTP/2 le font, mais de manières différentes. SPDY utilise une compression de type Gzip pour les en-têtes dans les deux directions. En raison d’une faille Gzip identifiée en 2012, une compression d’entête a été spécifiquement créée pour HTTP/2 : HPACK. Le test Httpwatch montre une meilleure performance de cette dernière, qui deviendra d’ailleurs une norme RFC prochainement.

A contrario, la taille des ressources textes est significativement plus faible pour le SPDY. Cela peut s’expliquer par le fait que HTTP/2 utilise du Padding (ie. remplissage de bits) pour compléter les contenants des frames de message. On évite ainsi les insertions frauduleuses dans les échanges de requêtes. En théorie, le HTTP/2 est moins performant en volume de corps de trame, mais plus sécurisé.

En revanche, il n’y a pas de gain flagrant sur la taille des corps de réponse d’une ressource image.

Concernant la vitesse de chargement des pages, HTTP/2 tire une nouvelle fois son épingle du jeu sûrement grâce à des tailles d’en-têtes GET réduites avec la compression HPACK ; la capacité d’upload étant le plus souvent réduite par rapport à celle du download.

Pour conclure

HTTP/2 est significativement plus performant que HTTP/1.1, mais aussi que SPDY. De plus, il se montre plus robuste en termes de sécurité.

D’ailleurs, les éditeurs de navigateur ne s’y trompent pas. S’ils n’y sont pas déjà passés, la plupart seront compatibles HTTP/2 très prochainement. Mozilla est déjà prêt depuis Firefox 35, et le nouveau navigateur de Microsoft – Spartan – ainsi que Chrome 40 le supporteront. Google a d’ailleurs annoncé l’abandon du SPDY…

Source : A Simple Performance Comparison of HTTPS, SPDY and HTTP/2 – http://blog.httpwatch.com/2015/01/16/a-simple-performance-comparison-of-https-spdy-and-http2/






A propos de l'auteur :

Expert dans le domaine de la performance, je porte un intérêt particulier à toutes les problématiques autour de la méthodologie, de l'organisation et de la métrologie des qualifications techniques.


Veuillez respecter ces quelques règles avant la publication de votre commentaire :

- Aucun message à caractère raciste, xénophobe, pornographique, diffamatoire ou homophobe,
- Evitez le langage SMS et les majuscules utilisées de façon abusive,
- Pas de warez, pas de P2P, pas de lien de téléchargement illégal.
- Enregistrez-vous pour commenter sans avoir besoin de remplir les champs.

Cet espace est aussi le vôtre, respectez-le !