Maison > interface Web > js tutoriel > HTTP/s HTTP/s HTTP3

HTTP/s HTTP/s HTTP3

王林
Libérer: 2024-09-06 16:31:05
original
941 Les gens l'ont consulté

Introduction

C'est l'un de mes sujets préférés, et ce serait un article riche en connaissances. Alors lisez attentivement.

Partage de domaine

  • Le partitionnement de domaine est une technique utilisée pour améliorer la vitesse et les performances d'un site Web.
  • Cela implique de diviser ou de « partager » les ressources sur plusieurs domaines.
  • Lorsqu'un navigateur charge un site Web, il demande au serveur du site Web de télécharger différents types de ressources comme HTML, CSS, JavaScript, images, etc.
  • Cependant, les navigateurs limitent le nombre de connexions simultanées (téléchargements) qu'ils effectueront vers un seul domaine. (6, selon le navigateur)
  • En partageant les ressources sur plusieurs domaines (par exemple, en diffusant des images provenant d'un domaine différent de celui des scripts), vous pouvez contourner cette limite et télécharger plus de ressources en même temps, ce qui peut entraîner des temps de chargement de page plus rapides.

Multiplexage

  • qui permet d'envoyer plusieurs requêtes et réponses en même temps sur une seule connexion (par défaut autour de 100)

REMARQUE :-

  • Cependant, il est important de noter que HTTP/2, la dernière version du protocole HTTP, prend en charge le multiplexage,

Comment adopter/modifier le protocole actuel

  • Pour passer de HTTP/1 à HTTP/2, vous devez configurer votre serveur pour prendre en charge HTTP/2.

  • Les étapes exactes dépendent du logiciel serveur que vous utilisez. Voici les étapes générales pour certains serveurs courants :

Apache :

  • Apache prend en charge HTTP/2 à partir de la version 2.4.17. Pour l'activer, vous devez inclure le module mod_http2 dans votre configuration Apache puis ajouter les protocoles h2 http/1.1 à votre configuration.

Nginx :

  • Nginx prend en charge HTTP/2 à partir de la version 1.9.5. Pour l'activer, incluez http2 dans vos directives d'écoute dans votre configuration Nginx, comme ceci : Listen 443 ssl http2.

Node.js :

-Si vous utilisez Node.js, vous pouvez utiliser le module http2 intégré pour créer un serveur HTTP/2.

REMARQUE :-

N'oubliez pas que HTTP/2 nécessite HTTPS dans la plupart des navigateurs, vous devrez donc également configurer un certificat SSL pour votre serveur.

Du point de vue Front-End, que faisons-nous ?

  • Non, le passage de HTTP/1 à HTTP/2 est géré au niveau du serveur, pas au niveau du client ou du front-end.
  • Cependant, une fois que votre serveur prend en charge HTTP/2, vous souhaiterez peut-être reconsidérer certaines techniques d'optimisation des performances courantes avec HTTP/1, telles que le partage de domaine ou la concaténation d'actifs, car elles peuvent être inutiles, voire préjudiciables avec HTTP/2. .

Comment se déroule la connexion dans le client et le serveur

HTTP/1

  • HTTP/1 fonctionne sur une seule connexion par modèle requête/réponse. Cela signifie que pour chaque requête du client au serveur, une connexion TCP distincte est établie.

  • Si une page Web nécessite plusieurs ressources (comme des images, CSS, fichiers JavaScript), plusieurs connexions TCP doivent être établies.

  • Cela peut conduire à un problème connu sous le nom de « blocage en tête de ligne », où le chargement d'une ressource peut être bloqué par le chargement d'une ressource précédente.

  • HTTP/1 ne prend pas en charge le serveur push, ce qui signifie que le serveur ne peut envoyer que les ressources demandées par le client.

HTTP/2

  • HTTP/2 introduit le multiplexage, qui permet d'envoyer plusieurs requêtes et réponses en même temps sur une seule connexion TCP. Cela élimine efficacement le problème de blocage de tête de ligne.

  • HTTP/2 introduit également le push serveur, où le serveur peut envoyer des ressources au client de manière proactive avant même que le client ne les demande. Cela peut améliorer les performances en réduisant le besoin de requêtes aller-retour entre le client et le serveur.

  • HTTP/2 prend également en charge la compression d'en-tête, ce qui peut réduire les frais généraux et améliorer les performances, en particulier pour les utilisateurs mobiles.

HTTP/2 prend également en charge la compression d'en-tête

  • HTTP/2 introduit une nouvelle fonctionnalité appelée Header Compression, qui réduit la surcharge des en-têtes HTTP.

  • Dans HTTP/1, les en-têtes sont envoyés sous forme de texte brut, ce qui peut être assez volumineux et ajouter une surcharge importante à chaque requête et réponse.

  • Cela est particulièrement vrai pour les demandes qui incluent des cookies ou des jetons dans les en-têtes.

  • HTTP/2 utilise un mécanisme appelé compression HPACK pour compresser les en-têtes.

  • HPACK est un système de compression de chaînes simple et sécurisé qui réduit la taille des en-têtes, rendant les requêtes et les réponses HTTP/2 plus rapides et plus efficaces.

La compression HPACK fonctionne en interne

  • En conservant une liste des champs d'en-tête précédemment envoyés côté client et côté serveur, connue sous le nom de table dynamique.

  • Lorsqu'un champ d'en-tête est répété dans des requêtes ou des réponses ultérieures, au lieu d'envoyer l'intégralité du champ d'en-tête, un index référençant l'entrée dans la table dynamique est envoyé.

  • Cela réduit considérablement la taille des en-têtes des requêtes et des réponses, en particulier lorsque de nombreux en-têtes sont répétés dans les requêtes.

HTTP/3

  • HTTP/3 est la prochaine version majeure du protocole HTTP. Il est construit sur QUIC, un protocole de couche de transport développé par Google.

Voici quelques-uns des avantages de HTTP/3 par rapport à HTTP/2 :

Vitesse améliorée :

  • HTTP/3 utilise QUIC, qui est conçu pour être plus rapide et plus fiable que TCP, le protocole de transport utilisé par HTTP/1 et HTTP/2.
  • QUIC réduit le temps d'établissement de la connexion, rendant la connexion initiale à un serveur plus rapide.

Meilleure gestion de la perte de paquets :

  • En HTTP/2, un paquet perdu ralentit tous les flux (requêtes/réponses). QUIC résout ce problème en gérant les flux de manière indépendante, de sorte qu'un paquet perdu n'affecte qu'un seul flux.

Migration de connexion :

  • QUIC prend en charge la migration de connexion, ce qui signifie que si un utilisateur change de réseau (comme passer du Wi-Fi à la 4G), la connexion existante peut être maintenue active et migrée vers le nouveau réseau.

  • Ceci n'est pas possible avec TCP, qui est lié à l'adresse IP d'origine.

Cryptage par défaut :

  • QUIC inclut le cryptage TLS 1.3 par défaut. Cela rend le protocole plus sécurisé et réduit le nombre d’allers-retours nécessaires pour établir une connexion.

Push du serveur :

  • Comme HTTP/2, HTTP/3 prend également en charge le push serveur, où le serveur peut envoyer des ressources au client de manière proactive, avant même que le client ne les demande.

REMARQUE :-

Il est important de noter que même si HTTP/3 présente plusieurs avantages, il n'est toujours pas largement pris en charge ou utilisé pour le moment.

HTTP/s HTTP/s HTTP3

HTTP/s HTTP/s HTTP3

Référence :-

  1. https://frontendmasters.com/courses/realtime/
  2. https://developer.mozilla.org/en-US/docs/Web/HTTP
  3. https://developer.mozilla.org/en-US/docs/Glossary/HTTP_2
  4. https://developer.mozilla.org/en-US/docs/Glossary/HTTP_3

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal