67 votes

Que se passe-t-il exactement lorsque vous parcourez un site web dans votre navigateur ?

Que se passe-t-il en coulisse lorsque nous tapons www.cnn.com dans un navigateur et comment les informations s'affichent-elles à l'écran ?

Une explication technique serait très appréciée.

141voto

levhita Points 1097

Navigateur : "Ok, donc, j'ai un utilisateur qui demande cette adresse : www.cnn.com. Je suppose que, puisqu'il n'y a pas de barre oblique ou autre, il s'agit d'une requête directe d'une page principale. Il n'y avait pas non plus de protocole ou de port défini, donc je suppose que c'est HTTP et que ça va sur le port 80... oh bien, chaque chose en son temps. Hey DNS, mon pote, réveille-toi ! Où se cache ce www.cnn.com ?"

DNS : "Bon... attends une seconde, je vais demander aux serveurs du FAI. Ok, ça ressemble à 157.166.226.25."

Navigateur : "Ok. Suite de protocoles Internet, à vous de jouer ! Appelez le 157.166.226.25, s'il vous plaît. Envoyez-leur cet en-tête HTTP. Il demande la structure de base et le contenu de leur page principale pour que je sache quoi récupérer d'autre... oh bien, pas que tu t'intéresses à ça je suppose. "

TCP/IP : "Qu'est-ce que tu veux dire mon tour ? Comme si je n'étais pas en train de me tuer à la tâche pour les DNS ? Mon Dieu, qu'est-ce qu'il faut pour avoir un peu d'appréciation ici..."

Navigateur : ...

TCP/IP : "Ouais, ouais... Connexion... Je vais juste demander à la passerelle de le transférer. Tu sais, ce n'est pas si facile, je vais devoir diviser ta jolie demande là en plusieurs parties pour qu'elle arrive au bout, et assembler tous les trucs qu'ils renvoient parmi les milliers de paquets que je reçois... ah, d'accord, tu t'en fous. Figures."

Pendant ce temps, au siège de CNN, un message atterrit finalement à la porte du serveur Web.

Serveur Web CNN : "Nzhôô ! Un client ! Il veut des nouvelles ! La Une ! Qu'en pensez-vous ?"

Moteur CNN côté serveur script : "D'accord, je le ferai ! Première page, c'est ça ?"

Serveur de base de données CNN : "Yey ! Travaillez pour moi ! De quel contenu avez-vous besoin ?"

Moteur CNN côté serveur script : "... hum, désolé DB, j'ai une copie de la page d'accueil juste ici dans mon cache, pas besoin de compiler quoi que ce soit. Mais hé, prenez cet ID utilisateur et stockez-le, je l'enverrai aussi au client, ainsi nous saurons à qui nous parlons plus tard."

Serveur de base de données CNN : "Yey !"

De retour à l'ordinateur de l'utilisateur...

TCP/IP : "Ooookay, voici la réponse. Oh garçon, pourquoi ai-je le sentiment que ça va être un gros coup..."

Navigateur : "Euh, wow... ça a toutes sortes de code javascript... un tas d'images, quelques formulaires... Bon, ça va prendre un certain temps à rendre. Mieux vaut s'y mettre. Hey, le système IP, il y a un tas d'autres choses que vous devrez obtenir. Voyons voir, j'ai besoin de quelques feuilles de style de i.cdn.turner.com - via HTTP et demander le fichier /cnn/.element/css/2.0/common.css. Et puis obtenir certains de ces scripts à i.cdn.turner.com aussi, j'en compte six jusqu'à présent..."

TCP/IP : "Je vois le tableau. Donne-moi juste les adresses des serveurs et tout ça. Et emballez ces trucs de fichiers dans la requête HTTP, je ne veux pas m'en occuper."

DNS : "Vérification de l'i.cdn.turner.com... hey, un peu de trivia, c'est en fait appelé cdn.cnn.com.c.footprint.net. L'IP est 4.23.41.126"

Navigateur : "Bien sûr, bien sûr... attendez une seconde, ça va prendre quelques nsec à traiter, j'essaie de comprendre tout ce script...".

TCP/IP : "Hé, voici le CSS que vous avez demandé. Oh, et... oui, ces scripts supplémentaires viennent également de revenir."

Navigateur : "Whew, il y a plus... une sorte de publicité vidéo !"

TCP/IP : "Oh garçon, quel plaisir ça a l'air..."

Navigateur : "Il y a toutes sortes d'images aussi ! Et ce CSS a l'air un peu méchant... Bon, alors si cette partie va là, et a cette ligne en haut... comment diable cela pourrait-il encore tenir... non, je vais devoir l'étirer un peu pour le faire... Oh, mais cet autre fichier CSS annule cette règle... Eh bien, celui-ci ne va pas être facile à rendre, c'est sûr !"

TCP/IP : "Ok, ok, arrête de me distraire une seconde, il y a encore beaucoup à faire ici."

Navigateur : "Utilisateur, voici un petit rapport d'activité pour vous. Désolé, tout cela peut prendre quelques secondes, il y a environ 140 éléments différents à charger, et on en est à 16 pour l'instant."

Une ou deux secondes plus tard...

TCP/IP : "Ok, ça devrait être tout. Hé, écoute... désolé de t'avoir rembarré tout à l'heure, tu t'en sors ? Ça a l'air d'être une sacrée charge pour toi aussi."

Navigateur : "Ouf, ouais, c'est tous ces sites web de nos jours, ils ne vous rendent pas la tâche facile. Eh bien, je vais me débrouiller. C'est pour ça que je suis là."

TCP/IP : "Je suppose que c'est assez lourd pour nous tous ces jours-ci... oh, arrêtez de jubiler là, DNS !"

Navigateur : "Hey utilisateur ! Le site web est prêt - va chercher tes nouvelles !"

20voto

Comment fonctionne le web : HTTP et CGI expliqués

Vous trouverez également une excellente explication du CERN - l'alma mater de Web : Comment fonctionne le web

enter image description here

18voto

BigJump Points 3236
  • Le navigateur divise ce que vous tapez (l'URL) en un nom d'hôte et un chemin.
  • Le navigateur forme une requête HTTP pour demander les données au nom d'hôte et au chemin donnés.
  • Le navigateur effectue une recherche DNS pour transformer le nom d'hôte en adresse IP.
  • Le navigateur établit une connexion TCP/IP avec l'ordinateur spécifié par l'adresse IP. (Cette connexion est en fait formée de plusieurs ordinateurs, chacun transmettant les données au suivant).
  • Le navigateur envoie la requête HTTP par la connexion à l'adresse IP donnée.
  • Cet ordinateur reçoit la requête HTTP de la connexion TCP/IP et la transmet au programme du serveur web.
  • Le serveur Web lit le nom d'hôte et le chemin et trouve ou génère les données que vous avez demandées.
  • Le serveur Web génère une réponse HTTP contenant ces données.
  • Le serveur Web renvoie cette réponse HTTP par la connexion TCP/IP à votre ordinateur.
  • Le navigateur reçoit la réponse HTTP et la divise en en-têtes (décrivant les données) et en corps (les données elles-mêmes).
  • Le navigateur interprète les données pour décider comment les afficher dans le navigateur. Il s'agit généralement de données HTML qui spécifient les types d'informations et leur forme générale.
  • Certaines de ces données seront des métadonnées spécifiant d'autres ressources à charger, comme des feuilles de style pour une mise en page détaillée, des images en ligne ou des films Flash. Ces métadonnées sont à nouveau spécifiées sous la forme d'une URL, et le processus se répète pour chacune d'elles jusqu'à ce que toutes soient chargées.

12voto

Ben Jackson Points 29

La première étape est la recherche DNS (Domain Name Server). Elle utilise les serveurs DNS spécifiés dans les paramètres de votre réseau (ou donnés par DHCP) pour rechercher le domaine principal (cnn.com) et demander ensuite au serveur de noms de ce domaine l'adresse IP du sous-domaine spécifié (www.cnn.com).

Après avoir obtenu l'adresse IP, votre navigateur commence à communiquer avec le serveur web. Pour ce faire, il utilise le protocole spécifié (qui est généralement le protocole HTTP 1.1 par défaut). Une requête 'GET' pour '/' est envoyée au serveur, qui répond avec le contenu du document HTML et les en-têtes appropriés (qui indiquent au navigateur le type de contenu du document, le HTML et d'autres informations). Ensuite, le navigateur analyse le document et trouve toutes les URL qu'il doit intégrer dans la page (comme les images ou les feuilles de style liées) et effectue des requêtes GET sur chacune d'entre elles.

En général, le navigateur fait aussi automatiquement une demande GET pour '/favicon.ico' (pour afficher la petite icône CNN à côté du titre du site).

Votre navigateur indiquera probablement aussi dans ses en-têtes de demande qu'il souhaite que le contenu de la réponse soit compressé à l'aide de l'algorithme gzip. Cela permet de télécharger un fichier beaucoup plus petit, si le serveur le prend en charge. Tout cela est transparent pour vous, même si c'est comme télécharger un fichier ZIP et le décompresser.

Lorsque vous rechargez la page, votre navigateur vérifie si cette page est déjà mise en cache dans votre système et, si c'est le cas, il effectue une requête HTTP uniquement pour l'en-tête du document et vérifie sa date de modification. Si cette date est postérieure à celle de la copie en cache, il demande à nouveau le contenu complet du document et actualise la page. Sinon, il utilise simplement votre copie locale.

8voto

Gablor1 Points 1

Ce qui se passe du côté du CNN est absent des autres réponses :

  • Une machine de CNN reçoit le message de votre ordinateur demandant la page.
  • Il redirige cette requête vers l'un des nombreux ordinateurs que le CNN utilise pour son site web (la raison en est que, de cette façon, vous pouvez répartir le travail d'élaboration des pages web de réponse sur de nombreux ordinateurs).
  • L'ordinateur de CNN reçoit votre demande et répond avec une page web qui est probablement presque entièrement précalculée, mais qui peut changer quelques éléments avant de vous l'envoyer (peut-être la publicité en haut de page, peut-être les gros titres). Parfois, les ordinateurs assemblent la page à partir d'un grand nombre de petits composants chaque fois qu'ils reçoivent une demande ; je ne sais pas ce que fait CNN.
  • la réponse fait son chemin à travers le réseau jusqu'à votre ordinateur, qui l'affiche ensuite.
  • la réponse n'incluait pas les images : votre ordinateur envoie alors une autre demande pour les images, et à peu près le même scénario se produit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X