web-dev-qa-db-fra.com

que se passe-t-il lorsque vous tapez une URL dans le navigateur

Quelqu'un peut-il me dire ce qui se passe dans les coulisses à partir du moment où je tape une URL dans le navigateur jusqu'au moment où je vois la page du navigateur? Un compte rendu détaillé du processus serait d'une grande aide.

286
Aadith

Attention: il s’agit d’un croquis extrêmement grossier et trop simplifié, en supposant que la requête HTTP la plus simple possible (pas de HTTPS, pas de HTTP2, pas de suppléments), le DNS le plus simple possible, pas de proxy, IPv4 à pile unique, une requête HTTP seulement, un serveur HTTP simple à l’autre extrémité, et aucun problème à aucune étape. Pour la plupart des intentions et des buts contemporains, il s’agit d’un scénario irréaliste; Tous ces éléments sont bien plus complexes dans leur utilisation réelle, et la pile de technologies est devenue un ordre de grandeur plus compliqué depuis la rédaction de cet article. Dans cet esprit, la chronologie suivante est encore valable:

  1. le navigateur vérifie le cache; si l'objet demandé est dans le cache et est récent, passez à # 9
  2. le navigateur demande à l'OS l'adresse IP du serveur
  3. Le système d'exploitation effectue une recherche DNS et répond l'adresse IP au navigateur.
  4. le navigateur ouvre une connexion TCP au serveur (cette étape est beaucoup plus complexe avec HTTPS)
  5. le navigateur envoie la requête HTTP via TCP connexion
  6. le navigateur reçoit la réponse HTTP et peut fermer la connexion TCP ou la réutiliser pour une autre demande
  7. le navigateur vérifie si la réponse est une redirection ou une réponse conditionnelle (codes d’état des résultats 3xx), une demande d’autorisation (401), une erreur (4xx et 5xx), etc. ceux-ci sont traités différemment des réponses normales (2xx)
  8. si mise en cache, la réponse est stockée dans le cache
  9. le navigateur décode la réponse (par exemple, si elle est compressée)
  10. le navigateur détermine quoi faire avec la réponse (par exemple, s’agit-il d’une page HTML, d’une image, d’un clip audio?)
  11. le navigateur affiche la réponse ou propose une boîte de dialogue de téléchargement pour les types non reconnus

Encore une fois, la discussion de chacun de ces points a rempli d'innombrables pages; prenez ceci comme un résumé, abrégé pour plus de clarté. De plus, de nombreuses autres choses se déroulent parallèlement à cela (traitement d'adresse saisie, prélecture spéculative, ajout de page à l'historique du navigateur, affichage de la progression de l'utilisateur, notification des plugins et des extensions, rendu de la page pendant son téléchargement, traitement en pipeline, suivi des connexions). Keep-Alive, gestion des cookies, vérification du contenu malveillant, etc.) - et l'opération entière devient un ordre de grandeur plus complexe avec HTTPS (certificats et chiffrements et épinglage, oh mon dieu!).

579
Piskvor

Tout d'abord, l'ordinateur recherche l'hôte de destination. S'il existe dans le cache DNS local, il utilise ces informations. Sinon, l'interrogation DNS est effectuée jusqu'à ce que l'adresse IP soit trouvée.

Ensuite, votre navigateur ouvre une connexion TCP à l'hôte de destination et envoie la demande selon HTTP 1.1 (ou peut utiliser HTTP 1.0, mais les navigateurs normaux ne le font plus).

Le serveur recherche la ressource requise (si elle existe) et répond en utilisant le protocole HTTP, envoie les données au client (= votre navigateur).

Le navigateur utilise ensuite l’analyseur HTML pour recréer la structure du document, qui vous est ensuite présentée à l’écran. S'il trouve des références à des ressources externes, telles que des images, des fichiers CSS, des fichiers JavaScript, celles-ci sont livrées de la même manière que le document HTML lui-même.

40
naivists

Recherchez la spécification de HTTP. Ou pour commencer, essayez http://www.jmarshall.com/easy/http/

3
John