in

WinWin

Qu’est ce que HTTP/2 ?

Ce qu’il faut savoir sur HTTP/2

5L’HyperText Transfer Protocol, plus connu sous l’abréviation HTTP — littéralement « protocole de transfert hypertexte » — est un protocole de communication client-serveur développé pour le World Wide Web. HTTPS (avec S pour secured, soit « sécurisé ») est la variante du HTTP sécurisée par l’usage des protocoles SSL ou TLS.

HTTP est un protocole de la couche application. Il peut fonctionner sur n’importe quelle connexion fiable, dans les faits on utilise le protocole TCP comme couche de transport. Un serveur HTTP utilise alors par défaut le port 80 (443 pour HTTPS).

Quelle est la différence entre HTTP/2 et HTTP/1.1 ?

HTTP/1.1 a eu plusieurs problèmes. Il a été conçu à un moment où les pages Web ont rarement dépassé les 100 Kb. Où le CSS n’était pas encore disponible et que le JavaScript était rarement utilisé (la validation de formulaire ou simples effets). La bande passante élevée, l’utilisation d’Ajax, les applications d’une seule page ou Single Page Application et des framework côté client n’existait pas encore. Personne ne pouvait envisager des pages faisant plus que quelques requêtes. HTTP/2 conserve la majorité de la syntaxe de HTTP/1.1, comme les méthodes, les codes, les URI ou les headers. Un élément a été modifié: la manière dont la donnée est segmentée et transportée entre le client et les serveurs ce qui n’a pas d’impact sur les applications existantes.

Le principal objectif de HTTP/2 est de réduire la latence de chargement des pages.

  1. HTTP/2 utilise des données binaires:  HTTP/1.1 utilise des données textuelles qui est généralement moins efficace pour communiquer à travers un réseau.
  2. Les Headers HTTP/2 sont compressées: Les informations envoyées avec la requête décrit les données, son origine, son type, sa taille, combien de temps il peut être mis en cache, etc. Contrairement à HTTP/1.1, tout ceci est désormais compressé avec HTTP/2.
  3. HTTP/2 utilise des Pipelines: Dans HTTP/1.1, le serveur doit envoyer des réponses dans le même ordre de la réception des requêtes. HTTP/2 est asynchrone donc les requêtes ne se suivent plus les unes derrière les autres et les plus prioritaires (telles que les CSS) ne sont plus bloquées par les moins prioritaires (telles que les images).
  4. HTTP/2 est multiplexée: Le multiplexage consiste à faire passer de multiples informations via un seul tuyau de transmission. Dans HTTP /1.1, une seule demande peut être traitée sur une connexion TCP. Les navigateurs ouvrent généralement entre quatre et huit canaux de connexions, mais les fichiers de taille conséquents peuvent causer le retardement du téléchargement d’autres fichiers. HTTP/2 permet d’effectuer de multiples requêtes et de recevoir de multiples réponses sur le même canal de connexion.
  5. HTTP/2 implémente Server Push: Désormais, le serveur pourra envoyer l’ensemble des ressources référencées dans une même page (CSS, JS…), avant même que le navigateur n’ait analysé celle-ci. Un serveur HTTP / 2 peut pousser le fichier JavaScript dans le navigateur avant de savoir qu’il est nécessaire de le faire. Dans HTTP/1.1, le navigateur va télécharger le HTML, l’ analyser, puis charger le fichier JavaScript lorsque la balise  <script>  est rencontrée.

Est-ce que HTTP/2 est mieux?

Les résultats diffèrent d’un système à un autre mais le test de rapidité entre HTTP/1.1 et HTTP/2 signale généralement que HTTP/2 est 10x plus rapide.

Est-ce que  HTTP/2 peut être utilisé aujourd’hui?

Oui. Cependant, HTTP/2 est activé uniquement lorsque le serveur Web et le navigateur prennent en charge ce protocole. La connexion reviendra normalement à HTTP/1.1 lorsque HTTP/2 n’est pas supporté. À la fin de 2016, près de 11% des dix millions de sites Web prennent en charge HTTP/2. Toutes les versions récentes de Firefox, Safari, Edge, Chrome et les autres navigateurs basés sur Blink supportent ce protocole.

Vous pouvez vérifier si votre hôte prend en charge HTTP/2 en entrant l’URL de votre site Web dans l’outil de test de HTTP/2 fourni par keycdn.com.

Ai-je besoin de mettre à jour mon site Web?

Non – HTTP/2 est rétrocompatible avec HTTP/1.1. Cependant, quelques-unes des bonnes pratiques de développement que vous utilisez aujourd’hui sont obsolète avec HTTP/2.

Vous utilisez peut-être un système de build pour:

  • Convertir plusieurs images en une seule image sprite
  • Concaténer et minifier les CSS et les JavaScript.

La réduction du nombre de requêtes est bon pour les connexions en HTTP/1.1, mais de multiple requête en HTTP/2 consomme beaucoup moins de ressource au serveur. Vous pouvez également déplacer vos fichiers sur différents domaines ou CDN pour permettre une plus grande ouverture pour les connexions en HTTP/1.1. Il n’en est pas nécessaire lors de l’utilisation de HTTP/2 parce que vous pouvez faire autant de demandes que vous en avez besoin sur un seul canal de connexion. Il est possible que plusieurs domaines distincts puissent nuire à la performance à cause de la résolution de DNS supplémentaires et des connexions TCP qui doivent être ouverts.

La concaténation est rarement un problème à moins que vous fusionniez des fichiers volumineux qui sont sujets à des changements réguliers. Conservez vos build process, sauf si vous pouvez prouver qu’une grande partie de vos utilisateurs peuvent utiliser le protocole HTTP/2.

 

What do you think?

23 points
Upvote Downvote

commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Chargement & hellip;

Comment transférer ses données de Android vers iOS ?

Android O disponible en developper preview