Un texte lu HTTP / 2 Caractéristiques

Aujourd'hui, HTTP 1.1 est devenu un des principaux protocoles Internet. Mais au début de la naissance du protocole HTTP, il a été considéré comme un accord simple. 1996 définit la spécification HTTP 1.0 dans la RFC 1945, seulement 60, en 1999 dans la RFC 2616 définit le protocole HTTP 1.1, augmenté à 176. Cependant, avec le développement rapide des technologies Web. HTTP 1.1 a été incapable de besoins des utilisateurs se rencontrent pour la performance, après que Google a lancé SPDY de protocole, destiné à résoudre les problèmes de performance dans le HTTP bien connu 1.1. SPDY est pris en charge par Chrome, Firefox et Opera, de nombreux grands sites (tels que Google, Twitter, Facebook) utilisation du client SPDY compatible. SPDY utilisations et être en mesure de démontrer après les gains de performance et est déjà devenu une norme dans les conditions de l'industrie.

TTP / 2 est le protocole HTTP Depuis 1999 HTTP version 1.1 de la première mise à jour est principalement basé sur le protocole SPDY. Il est développé par l'Internet Engineering Task Force (IETF) dans le protocole Hypertext Transfer Bis (httpbis) Groupe de travail. L'organisation en Décembre 2014, le HTTP / 2 proposition de norme soumis à l'IESG de discussion, a été approuvé le 17 Février 2015. HTTP / standard 2 mai 2015 à la RFC 7540 a été publié.

Ce HTTP / 2 à la fin les changements de particuliers l'ont?

cadrage binaire

D'abord comprendre quelques concepts:

  • Cadre (frame): HTTP / 2 de l'unité de minimum pour la communication de données.
  • Message (message): désigne le message HTTP sur le 2 HTTP / logique. Demande et la réponse, etc. Par exemple, une ou plusieurs trames de message.
  • Flux (stream): en présence d'une connexion de canal virtuel. Peut transporter le flux de messages bidirectionnel, chaque flux a un ID unique entier.

HTTP / 2 aux données de transmission en format binaire, format texte, plutôt que HTTP 1.x, il Parsis protocole binaire plus efficace.

Demande et la réponse paquet HTTP / 1, est la ligne de départ, et le corps de l'entité d'en-tête (en option), avec un retour à la ligne de texte entre les parties séparées. HTTP / 2 de la demande et des données de réponse en petits cadres, et ils sont codés en binaire.

Dans HTTP / 2, dans le même domaine sont tous sur une liaison de communication unique est terminée (décrit multiplexage), cette connexion peut porter un nombre quelconque de flux de données bidirectionnel. Chaque flux de données sont transmises sous forme de message, le message et un ou plusieurs cadres. Il peut être envoyé hors service entre une pluralité de trames, en fonction de l'identifiant de flux comme en-tête de trame peut être ré-assemblé.

multiplexeur

Multiplexage, au lieu de la séquence d'origine et les mécanismes de blocage. Toutes les demandes sont connexions simultanées se fait via une connexion TCP. HTTP 1.x, si vous souhaitez que plusieurs requêtes simultanées, vous devez utiliser plusieurs connexion TCP et le navigateur afin de contrôler les ressources, il y aura une limite au nombre de 6-8 sur un seul nom de domaine, comme indiqué ci-dessous, sur le cercle rouge sur demande le nom de domaine car le nombre de limite de liens a été dépassé, suspendu à attendre pendant un certain temps:

Après le HTTP / 2, avec la définition binaire, HTTP / 2 connexion TCP est plus dépendante parallèle pour réaliser un multi-flux, dans HTTP / 2 dans laquelle:

  • Toutes les communications dans le même domaine se fait sur une seule connexion.
  • Une connexion unique peut porter un nombre quelconque de flux de données bidirectionnel.
  • Un flux de données transmis sous forme de message, et le message à son tour par une ou plusieurs trames à transmettre entre une pluralité de trames sur commande, parce que, selon l'identificateur de flux de l'en-tête de trame peut être ré-assemblé.

Cette fonctionnalité, la performance sera grandement améliorée, parce que:

  • Avec des noms de domaine ne doivent prendre une connexion TCP, ce qui élimine les connexions TCP multiples en raison des retards provoqués et la consommation de mémoire.
  • L'unité entrelacée demande de connexion parallèle et de la réponse, l'interférence entre les deux.
  • Dans HTTP / 2, chaque demande peut être un 31bit avec une valeur de priorité de 0 indique la plus haute priorité, plus la valeur plus la priorité. Lorsqu'il est pris avec cette valeur de priorité, le client et le serveur peut gérer différents flux à différentes stratégies de la meilleure façon d'envoyer un flux, et un cadre de message.

Server push

Le serveur peut prendre l'initiative de pousser les pages HTML lors de l'envoi d'autres ressources, sans attendre les Parsis du navigateur en place, puis initier une réponse à la demande. Par exemple, le serveur peut prendre l'initiative de pousser JS et les fichiers CSS au client sans que le client analyse syntaxique HTML et ensuite envoyer ces demandes. Le serveur peut prendre l'initiative de pousser le client a le droit de choisir de recevoir ou non. Si le côté service appuyez sur la ressource a été navigateur mis en cache, le navigateur peut être rejeté en envoyant cadre RST_STREAM. poussée active également conforme à la règle d'origine, le serveur ne sera pas seulement pousser des ressources tiers au client.

compression en-tête

taille de la requête HTTP 1.1 devient plus grand, parfois même supérieure à la taille de la fenêtre TCP initiale, parce qu'ils attendent la réponse avec un accusé de réception peut continuer à envoyer plus tard. HTTP / 2 utilise le HPACK de l'en-tête de message (conçu spécifiquement pour en-tête format de compression HTTP2) pour la compression et la transmission, il est possible d'enregistrer en-tête du message de trafic occupé réseau. HTTP / 1.x chaque demande, va transporter de grandes quantités d'en-têtes redondants, gaspillés de la bande passante.

Chaque communication HTTP transporteront un ensemble de tête pour la description des ressources de cette communication, les propriétés du navigateur, cookies, etc., par exemple,

Pour réduire ces frais généraux et d'améliorer les performances, HTTP / 2 comprimera ces en-têtes:

  • HTTP / 2 dans le client et le serveur « table d'en-tête » de suivre et stocker la clé transmise précédemment - des paires de valeurs pour les mêmes données, pas plus envoyés par chaque requête et la réponse;
  • La table de tête est toujours présente dans la durée de la connexion HTTP / 2 conjointement progressivement mis à jour par le client et le serveur;
  • Chaque nouvelle clé d'en-tête - les paires de valeurs sont soit ajoutés à la fin de la table en cours, ou à remplacer la valeur tableau précédent.

Par exemple: la figure deux demande avec un champ d'en-tête a envoyé tout, seulement besoin d'envoyer un deuxième données de différence de demande, ce qui réduit les données redondantes, réduire les frais généraux.

Let look un exemple pratique, ce qui suit est capturé avec Wireshark accès paquet page d'accueil de Google:

La figure est à la tête du premier accès à la demande https://www.google.com/ pris, vous pouvez voir le contenu de la tête, en prenant un total de 437 octets, nous avons sélectionné la tête du cookie, vous pouvez voir biscuits occupent un total de 118 octets. Ensuite, nous regardons la deuxième demande de la tête:

Vous pouvez le voir sur le graphique, grâce à la compression d'en-tête, la deuxième demande de cookies prend 1 octet, nous prenons seulement un regard sur le champs Accepter changé:

Puisque Accepter les différents champs d'une demande de contenu, à transmettre au serveur, prend 29 octets.

PS: Voici un lien vers la présentation akamai HTTP / 2, sont intéressés peuvent cliquer pour voir: https: //http2.akamai.com/demo

Les navigateurs et les services Web demande d'assistance: HTTP2 liste de soutien

épilogue

Tirez sur toute plate-forme CDN nuage prend actuellement en charge HTTP / 2, et a été activé par défaut. Parce que HTTP / 2 est mis en uvre sur la base du protocole HTTPS, tant qu'ils tirent le nuage en utilisant le domaine des services d'accélération HTTPS, vous pouvez profiter d'un accès gratuit à HTTP / 2 services, sans avoir à faire une configuration spéciale. HTTPS est activée, il suffit de remplir la demande de certificat et de gestion, sans procédures compliquées, le cryptage HTTPS facile à déployer des sites Web et des applications.

« Vêtements en soie sous la » Ren Jialun frappé, la surprise plate-forme de diffusion, les utilisateurs: jusqu'à ce que vous!
Précédent
« Négociateur » chats publics internes, les chats trouvent les faits saillants
Prochain
Xi Jinping a accueilli résoudre les « deux à vous soucier de trois garanties » forum des questions en suspens
39 ans « » glamour « » est toujours la peau blanche et belle « » Pink Lady « »
Yantai ce feu d'insectes, les montagnes et les plaines sont pris les insectes, les insectes que la voiture
Penglai Fairyland adieu « dans une porte pour acheter un billet »! Pittoresque « mur invisible » enlevé
Hebei Hengshui: mitsva pousser les jeunes
Derrière la Société Seal Xiling, il y a une famille inconnue, il est peut-être la première génération du célèbre personnel du Hunan Yulin
Taiwan a dit cela peut « contre » l'Armée de libération populaire, Taiwan amis rire
« Trois cents jardin » Baicaoyuan diffusion de la culture chinoise
Serrant sécurité « numéro un »! la zone portuaire cette corde tendue de sécurité de la production
36 ans, Kate et Megan, âgé de 37 ans ont pensé une coïncidence, avec des détails pour rendre hommage à sa mère la princesse Diana!
ville allemande d'augmenter la construction du réseau routier rue Xinhua flux sanguin ville
Elle County, Festival de la culture populaire Anhui: Le gouvernement a mis en place le discours de bienvenue folklorique paysanne scène Revive