Qu'est-ce que HTTP / 2 et en quoi cela affecte-t-il l'avenir d'Internet?
Vous n'avez peut-être pas encore entendu parler de HTTP / 2, mais c'est la mise à jour la plus récente de HTTP. La nouvelle norme de protocole introduit de nouveaux concepts et rend la communication entre serveurs et applications plus rapide et plus efficace.
Qu'est-ce que HTTP / 2?
HyperText Transfer Protocol Version 2, ou HTTP / 2, est la première mise à jour majeure de HTTP en 15 ans..
Le protocole précédent, HTTP / 1.1, est utilisé depuis 1997 et utilise une combinaison de solutions de contournement maladroites pour améliorer les limitations de HTTP..
Il est basé sur SPDY (“rapide”), une expérience open-source lancée par Google pour résoudre certains problèmes et limitations de HTTP / 1.1
Le groupe de travail d'ingénierie Internet (IETF) spécifie les modifications de ce type dans la version 2 du projet 17 de Hypertext Transfer Protocol:
“HTTP / 2 permet une utilisation plus efficace des ressources réseau et une perception réduite du temps de latence en introduisant la compression du champ d'en-tête et en permettant plusieurs échanges simultanés sur la même connexion. […]
“Il permet également de hiérarchiser les demandes, permettant aux demandes plus importantes d'être traitées plus rapidement, améliorant ainsi les performances..”
“HTTP / 2 permet également un traitement plus efficace des messages grâce à l'utilisation du cadrage binaire des messages.”
“Cette spécification est une alternative à la syntaxe de message HTTP / 1.1, mais n’est pas obsolète. La sémantique existante de HTTP reste inchangée.”
HTTP / 2 est basé sur SPDY
En 2012, la plupart des navigateurs modernes et de nombreux sites populaires (Google, Twitter, Facebook, etc.) prenaient déjà en charge SPDY. Alors que la popularité de SPDY augmentait, le groupe de travail HTTP (HTTP-WG) a commencé à mettre à jour le standard HTTP..
À partir de ce moment, SPDY est devenu la base et la branche expérimentale des nouvelles fonctionnalités de HTTP / 2. À l'époque, nous avions examiné comment SPDY pouvait améliorer la navigation. Qu'est-ce que SPDY et comment peut-il optimiser votre expérience de navigation? Qu'est-ce que SPDY et comment peut-il maximiser votre expérience de navigation? Lire la suite . Depuis lors, la norme version 2 a été rédigée, approuvée et publiée.
De nombreuses fonctionnalités de SPDY ont été intégrées à HTTP / 2 et Google a finalement cessé de prendre en charge ce protocole au début de 2016..
La plupart des navigateurs ont fini par cesser de prendre en charge SPDY et, en l'absence d'alternative, HTTP / 2 devient le standard de facto..
Bien que la norme de protocole HTTP / 2 ne soit pas strictement compatible avec HTTP / 1, la compatibilité peut être obtenue par traduction. Un client uniquement HTTP / 1.1 ne comprendra pas un serveur uniquement HTTP / 2 et vice versa, raison pour laquelle la nouvelle version du protocole est HTTP / 2 et non HTTP / 1.2..
Cela dit, une partie importante du travail fourni par HTTP-WG consiste à faire en sorte que HTTP / 1 et HTTP / 2 puissent être convertis dans les deux sens sans perte d'information..
Tous les nouveaux mécanismes ou fonctionnalités introduits seront également indépendants de la version et compatibles avec le Web existant..
HTTP / 2 n'est pas vraiment quelque chose qu'un utilisateur peut implémenter, mais nous pouvons faire certaines choses pour affecter notre vitesse de navigation. Croyez-vous qu’un de ces mythes courants accélère votre vitesse d’internet? 5 mythes sur l'augmentation de la vitesse de l'Internet et pourquoi ils ne fonctionnent pas 5 mythes sur l'augmentation de la vitesse de l'Internet et pourquoi ils ne fonctionnent pas La vitesse de l'Internet est une mesure essentielle du 21ème siècle. Cependant, il y a beaucoup de désinformation en ligne sur la manière de rendre votre connexion plus rapide. Voici cinq mythes que vous ne devriez pas croire. Lire la suite
Les avantages et les fonctionnalités de HTTP / 2
HTTP / 2 est fourni avec de très bonnes mises à jour du standard HTTP. Les plus importants sont le cadrage binaire, le multiplexage, la hiérarchisation des flux, le contrôle de flux et la diffusion serveur..
Encadrement binaire
Suite à la mise à jour vers HTTP2 /, la communication du protocole HTTP est scindée en un échange de trames codées en binaire. Ces trames sont mappées sur des messages appartenant à un flux particulier. Les flux sont ensuite multiplexés (tissés ensemble) dans une seule connexion TCP.
La nouvelle couche de cadrage binaire introduit une nouvelle terminologie; Flux, messages et cadres.
- Les flux sont des flux d'octets bidirectionnels contenant un ou plusieurs messages..
- Chacun de ces flux possède un identifiant unique et peut transporter des messages bidirectionnels à l'aide d'informations de priorité facultatives..
- Les cadres sont la plus petite unité de communication dans HTTP / 2 qui contient des ensembles de données spécifiques (en-têtes HTTP, charges utiles de messages, etc.). L'en-tête identifiera au minimum le flux auquel appartient la trame.
- Les messages sont un ensemble complet de cadres mappés sur une requête logique ou un message de réponse..
- Chaque message est un message HTTP logique, comme une demande ou des réponses, composé d'une ou plusieurs trames..
Cela nous permet d’utiliser une seule connexion TCP, ce qui nécessitait autrefois plusieurs.
Le multiplexage
HTTP / 1.1 garantit qu'une seule réponse peut être fournie à la fois par connexion. Et le navigateur ouvrira des connexions TCP supplémentaires si le client veut faire plusieurs demandes en parallèle.
HTTP / 2 supprime cette limitation de HTTP / 1.1 et active le multiplexage des demandes et des réponses complètes. Cela signifie que le client et le serveur peuvent décomposer un message HTTP en trames indépendantes, qui sont ensuite entrelacées et réassemblées à l'autre extrémité..
Dans l’ensemble, il s’agit de l’amélioration la plus importante de HTTP / 2, car elle éliminera en partie le besoin de connexions multiples. Cela apportera de nombreux avantages en termes de performances sur toutes les technologies Web..
Le nombre réduit de connexions signifie moins de contacts TLS (Transport Layer Security), une meilleure réutilisation des sessions et une réduction globale des besoins en ressources client et serveur. Cela rend les applications plus rapides, plus simples et moins coûteuses à déployer.
Les sites Web comportant de nombreux actifs externes (images ou scripts) verront les gains de performances les plus importants du multiplexage HTTP / 2..
Priorité des flux et dépendance
D'autres améliorations des flux multiplexés sont apportées avec des dépendances de poids et de flux. HTTP / 2 nous permet d'attribuer un poids à chaque flux (une valeur comprise entre 1 et 256) et de le rendre explicitement dépendant d'un autre flux..
Cette combinaison de dépendance et de pondération conduit à la création d'un arbre de hiérarchisation des priorités, qui indique au serveur comment le client préfère recevoir les réponses..
Le serveur utilisera les informations de l'arborescence de hiérarchisation pour contrôler l'allocation de ressources processeur, mémoire et autres ressources, ainsi que l'allocation de bande passante pour garantir au client la livraison optimale des réponses hautement prioritaires..
Contrôle de flux
Les problèmes liés au contrôle de flux dans HTTP / 2 sont similaires à ceux de HTTP / 1.1. Cependant, comme les flux HTTP / 2 sont multiplexés au sein d’une seule connexion TCP, le contrôle du flux dans HTTP / 1.1 n’est plus efficace..
En bref, le contrôle du flux est nécessaire pour empêcher les flux d'interférer les uns avec les autres afin de provoquer un blocage. Cela rend le multiplexage possible. HTTP / 2 permet d'utiliser divers algorithmes de contrôle de flux, sans nécessiter de modification de protocole..
Aucun algorithme de contrôle de flux n'est spécifié dans HTTP / 2. Au lieu de cela, un ensemble de blocs de construction a été fourni pour aider les clients et les serveurs à appliquer leur propre contrôle de flux..
Vous pouvez trouver les détails de ces blocs de construction dans le “Contrôle de flux” section du projet Internet HTTP / 2.
Push serveur
Votre navigateur demande et reçoit normalement un document HTML d'un serveur lors de la première visite d'une page. Le serveur doit ensuite attendre que le navigateur analyse le document HTML et envoie une demande pour les actifs incorporés (CSS, JavaScript, images, etc.)..
Dans HTTP / 1.1, le serveur ne peut pas envoyer ces actifs tant que le navigateur ne les a pas demandés, et chaque actif nécessite une requête distincte (par exemple, plusieurs poignée de main et connexions)..
L'accès serveur réduira la latence en permettant au serveur d'envoyer ces ressources sans invite, car il sait déjà que le client en aura besoin. Ainsi, dans l'exemple ci-dessus, le serveur va pousser CSS, JavaScript (un langage de script commun Qu'est-ce que JavaScript et comment ça marche? Qu'est-ce que JavaScript et comment ça marche? Qu'est ce que Javascript? C'est un langage de programmation utilisé pour améliorer les pages Web. Cela inclut la mise à jour dynamique des pages Web, des interfaces utilisateur, etc. Nous allons plonger dans l’esprit de Javascript. En savoir plus dans les pages Web), ainsi que des images dans le navigateur pour afficher la page plus rapidement..
En gros, serveur push permet à un serveur d'envoyer plusieurs réponses pour une requête client unique.
Même si c'est manuellement, c'est l'effet que nous obtenons actuellement en insérant CSS ou JS dans nos documents HTML - nous transmettons la ressource en ligne au client sans attendre que le client le demande..
C'est un grand pas en avant par rapport à la norme HTTP actuelle en matière de flux de travail strict requête-réponse un à un.
Les limites de HTTP / 2
SPDY appliquait une politique de sécurité légèrement plus stricte et exigeait le cryptage SSL pour toutes les connexions. HTTPS / 2 ne nécessite pas de chiffrement mais de nombreux services ne serviront pas HTTP / 2 sans SSL.
Tous les principaux navigateurs prennent en charge HTTP / 2, mais aucun d’entre eux ne le supportera sans chiffrement. Comme indiqué ci-dessus, le site Web de CanIUs offre une vue d'ensemble des tables sur le support actuel du navigateur pour HTTP / 2..
La compatibilité ascendante et les traductions entre HTTP / 1.1 et HTTP / 2 ralentiront la vitesse de chargement des pages.
Il n'y a pas de vraie raison pour laquelle le cryptage ne devrait pas être une configuration par défaut ou obligatoire maintenant. Si vous avez déjà un certificat SSL sur votre site, vous pouvez améliorer la sécurité de votre site Web HTTPS en activant HSTS..
HTTP / 2 est-il la prochaine grande chose?
HTTP / 2 a été proposé comme norme à la mi-2015 et la plupart des navigateurs l'ont ajouté à la fin de l'année. HTTP / 2 affecte déjà le fonctionnement d'Internet et la façon dont les applications et les serveurs communiquent.
Il n’est pas nécessaire de forcer l’utilisation de HTTP / 2, mais jusqu’à présent, il ne sert qu’à des avantages et aucun inconvénient. C'est également un changement assez mineur du point de vue de l'utilisateur, un changement que les gens ne remarqueront pas vraiment.
Selon W3Tech, 31,7% des 10 millions de sites Web principaux prennent actuellement en charge HTTP / 2. Pour la plupart d'entre vous, le moyen le plus rapide d'activer HTTP / 2 sur votre site Web consiste à utiliser le CDN de Cloudflare..
La prochaine norme proposée (HTTP / 3) est déjà en préparation et est basée sur QUIC, un autre projet expérimental de Google. En octobre dernier, HTTP-WG et le groupe de travail QUIC de l'IETF ont officiellement demandé à QUIC de devenir le nouveau standard mondial et de le renommer HTTP / 3..
Si vous êtes curieux, Akamai.com dispose d’un outil rapide pour vérifier si votre navigateur prend en charge HTTP / 2. Si ce n'est pas le cas, songez à changer de navigateur. 5 Alternatives à Google Chrome pour un meilleur navigateur sur un ordinateur de bureau ou mobile 5 Alternatives à Google Chrome pour un meilleur navigateur sur un ordinateur de bureau ou sur mobile Chrome est le navigateur le plus populaire au monde. Mais il y a toujours des problèmes. Ces navigateurs alternatifs peuvent-ils être un meilleur choix? Lire la suite .
En savoir plus sur: Réseaux informatiques, HTTP / 2, SPDY.