Vous êtes-vous déjà interrogé sur la série complexe d'événements qui se produisent dans la fraction de seconde entre la saisie de « google.com » dans votre navigateur et l'apparition de la page de recherche familière ? Dans cette exploration détaillée, nous découvrirons le monde fascinant des technologies Web, des protocoles de réseau et la danse complexe des données qui rendent nos expériences en ligne possibles.
Lorsque vous tapez « google.com » et appuyez sur Entrée, votre navigateur entre en action :
Analyse d'URL : le navigateur analyse d'abord l'URL que vous avez saisie. Il identifie le protocole (dans ce cas, implicite "http://" ou "https://"), le nom de domaine ("google.com") et tout chemin d'accès ou paramètres de requête supplémentaires (aucun dans cet exemple simple) .
Vérification HSTS : pour les sites Web soucieux de la sécurité comme Google, le navigateur vérifie sa liste HTTP Strict Transport Security (HSTS). Si google.com figure sur cette liste (ce qui est le cas), le navigateur met automatiquement à niveau la requête vers HTTPS.
Vérification du cache : avant de contacter le réseau, le navigateur vérifie son cache local. Ce cache stocke les informations des visites précédentes, notamment :
Si l'un de ces éléments est trouvé et toujours valide (non expiré), le navigateur peut ignorer certaines des étapes suivantes.
Si le navigateur ne trouve pas les informations nécessaires dans son cache, il se tourne vers le système d'exploitation (OS) pour obtenir de l'aide :
Vérification du fichier hosts : le système d'exploitation recherche d'abord dans le fichier "hosts" local. Ce fichier peut mapper des noms de domaine sur des adresses IP, contournant potentiellement la recherche DNS. Cependant, pour la plupart des utilisateurs, google.com ne figurera pas dans ce fichier.
Cache client DNS : le système d'exploitation gère son propre cache DNS, distinct de celui du navigateur. Il vérifie ici ensuite.
Configuration du résolveur : si l'adresse IP n'est pas dans le cache local, le système d'exploitation se prépare à demander à un serveur DNS. Il lit sa configuration réseau pour savoir quel serveur DNS interroger (généralement fourni par votre fournisseur d'accès Internet ou défini manuellement).
Si l'adresse IP de google.com n'est pas mise en cache, nous devons demander au système de noms de domaine (DNS) de traduire le "google.com" lisible par l'homme en une adresse IP utilisable par machine.
Le DNS est organisé selon une structure hiérarchique :
Serveurs racine : au sommet de la hiérarchie. Ils savent où trouver les serveurs faisant autorité pour les domaines de premier niveau (TLD) comme .com, .org, .net, etc.
Serveurs TLD : ces serveurs connaissent tous les domaines enregistrés sous leur TLD. Le serveur TLD .com connaît google.com.
Serveurs de noms faisant autorité : ils sont chargés de tout savoir sur un domaine spécifique, y compris sa ou ses adresses IP.
Mise en cache : chaque étape de ce processus peut impliquer la mise en cache, le parcours complet n'est donc pas toujours nécessaire. Le résolveur met en cache le résultat final, généralement pendant une durée spécifiée par Google (le Time To Live, ou TTL).
Équilibrage de charge : les grands services comme Google renvoient souvent plusieurs adresses IP. Cela permet un équilibrage de charge et une fiabilité améliorée.
Disons que la recherche DNS renvoie le résultat (simplifié) suivant :
google.com. 300 IN A 172.217.167.78
Cela signifie:
Maintenant que nous avons l'adresse IP de Google, il est temps d'établir une connexion.
Couche d'application : votre navigateur fonctionne ici, en utilisant HTTP(S) pour communiquer.
Couche de transport : TCP est utilisé ici pour garantir une livraison fiable et ordonnée des données.
Couche Internet : IP est utilisé pour acheminer les paquets entre les réseaux.
Couche de liaison : cela gère la transmission physique des données, que ce soit via Ethernet, Wi-Fi, réseaux cellulaires, etc.
Pour établir une connexion, une négociation à trois se produit :
Ce processus établit des numéros de séquence pour la conversation, garantissant que les paquets peuvent être correctement ordonnés et que tout paquet perdu peut être détecté et retransmis.
Pour les connexions HTTPS (que Google utilise), une négociation TLS (Transport Layer Security) supplémentaire se produit :
Une fois une connexion sécurisée établie, votre navigateur envoie une requête HTTP GET pour la page d'accueil de Google.
GET / HTTP/2 Host: www.google.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0 Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Connection: keep-alive Upgrade-Insecure-Requests: 1
Cette demande comprend :
Les serveurs de Google reçoivent cette demande et la traitent. Cela peut impliquer :
Le serveur de Google renvoie une réponse HTTP, qui pourrait ressembler à ceci :
HTTP/2 200 OK Content-Type: text/html; charset=UTF-8 Date: Sat, 21 Sep 2024 12:00:00 GMT Expires: Sat, 21 Sep 2024 12:00:00 GMT Cache-Control: private, max-age=0 Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN [... other headers ...]
Cette réponse comprend :
Votre navigateur dispose désormais du contenu HTML et commence à afficher la page :
Analyse HTML : le navigateur analyse le code HTML, créant ainsi le modèle d'objet de document (DOM).
Demande de ressources supplémentaires : lorsqu'il rencontre des liens vers CSS, JavaScript, des images, etc., il envoie des requêtes HTTP supplémentaires pour ces ressources.
Analyse CSS : le navigateur analyse le CSS et applique des styles aux éléments du DOM, créant ainsi le modèle d'objet CSS (CSSOM).
Exécution de JavaScript : le navigateur exécute JavaScript, ce qui peut modifier le DOM et le CSSOM.
Rendu : le navigateur utilise le DOM et le CSSOM finaux pour afficher la page sur votre écran.
Ce qui semble être une action simple : taper "google.com" et appuyer sur Entrée - implique en réalité une série complexe d'étapes, depuis les recherches DNS et les protocoles réseau jusqu'au traitement côté serveur et au rendu côté client. Cette danse complexe se déroule en quelques millisecondes seulement, mettant en valeur l'incroyable ingénierie qui alimente nos expériences en ligne.
La compréhension de ces processus satisfait non seulement notre curiosité, mais aide également les développeurs Web et les professionnels de l'informatique à optimiser les sites Web, à résoudre les problèmes et à créer des applications Web plus efficaces et plus sécurisées. La prochaine fois que vous visiterez un site Web, prenez un moment pour apprécier les merveilles technologiques qui opèrent en coulisses pour amener le Web sur votre écran !
Les images de ce blog sont générées par l'IA.
Lisez également HTTP vs HTTPS quelle est la différence entre eux
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3