it-swarm-fr.com

Que se passe-t-il exactement lorsque vous naviguez sur un site Web dans votre navigateur?

Que se passe-t-il en coulisse lorsque nous tapons www.cnn.com dans un navigateur et comment l'information est-elle affichée à l'écran?

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

62
Rachel

Navigateur: "OK, un utilisateur demande donc l'adresse suivante: www.cnn.com. Je suppose qu'il n'y a pas de barre oblique ni quoi que ce soit, ce est une demande directe d'une page principale. Il n'y avait pas non plus de protocole ou de port défini, je vais donc supposer que c'est HTTP et aller sur le port 80 ... eh bien, commençons par le début. Hé, DNS, mon ami, réveillez-vous! ce www.cnn.com se cacher à? "

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

Navigateur: "Ok. Internet Protocol Suite, à votre tour! 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 contenu de leur page principale afin que je sache quoi d’autre à chercher ... eh bien, pas que vous vous souciez de cela, je suppose. "

TCP/IP: "Que voulez-vous dire mon tour ? Comme si je ne travaillais pas se retirer pour le DNS? Dieu, que faut-il pour apprécier un peu ici ... "

Navigateur: ...

TCP/IP: "Ouais, ouais ... Connexion ... Je vais juste demander à la passerelle de la transmettre. Vous savez, ce n'est pas Pas si facile, je vais devoir diviser votre jolie requête en plusieurs parties afin d’atteindre la fin, et assembler tout ce qu’elles renverront à partir des milliers de paquets que j’aurai reçus… soins. Chiffres. "

Pendant ce temps, au siège de CNN, un message se termine enfin à la porte du serveur Web.

Serveur Web CNN: "Nzhôô! Un client! Il veut des nouvelles! La page d'accueil! Et vous?"

Moteur de script CNN côté serveur: "Bien, ça ira! Une page de garde, n'est-ce pas?"

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

Moteur de script CNN côté serveur: "... euh, désolé DB, j'ai une copie de la page de couverture ici dans mon cache, pas besoin de compiler Mais bon, prenez cet ID utilisateur et stockez-le, je l'enverrai aussi au client, pour que nous sachions à qui nous parlerons plus tard. "

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

Retour sur l'ordinateur de l'utilisateur ...

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

Navigateur: "Euh, ouah ... ça a toutes sortes de code javascript ... plein d'images, quelques formes ... Bon, ça Salut, système IP, il y a encore beaucoup de choses dont vous aurez besoin pour obtenir. Voyons voir s'il me faut quelques feuilles de style de i.cdn.turner.com - via HTTP et demander pour le fichier /cnn/.element/css/2.0/common.css. Ensuite, récupérez quelques-uns de ces scripts sur i.cdn.turner.com aussi, j'en compte six à ce jour ... "

TCP/IP: "Je reçois la photo. Donnez-moi juste les adresses du serveur et tout ça. Et enroulez ce contenu dans la requête HTTP, je ne 'veux pas y faire face. "

DNS: "Vérification du fichier i.cdn.turner.com ... hé, petit détail, il s’appelle cdn.cnn.com.c. footprint.net. IP is 4.23.41.126 "

Navigateur: "Bien sûr, bien sûr ... attendez une seconde, cela 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 sont également revenus."

Navigateur: "Ouf, il y a plus ... une sorte d'annonce vidéo!"

TCP/IP: "Oh, quel plaisir ça sonne comme ..."

Navigateur: "Il y a aussi toutes sortes d’images! Et ce CSS a l’air un peu vilain ... oui, donc si cette partie est là, et a cette la ligne en haut ... comment cela conviendrait-il ... non, je vais devoir étirer ça un peu pour le faire ... Oh, mais cet autre fichier CSS annule cette règle ... une ne sera pas une pièce facile à rendre, c'est sûr! "

TCP/IP: "D'accord, d'accord, arrête de me distraire un instant, il reste encore beaucoup à faire ici."

Navigateur: "Utilisateur, voici un petit rapport de progression pour vous. Désolé, tout cela peut prendre quelques secondes, il y a environ 140 éléments différents à charger, et aller à 16 si loin. "

Une ou deux secondes plus tard ...

TCP/IP: "Ok, ça devrait être tout. Hé, écoute ... désolé, je t'ai moqué plus tôt, tu y arrives? Ça semble sûr comme tout à fait la charge pour vous aussi. "

Navigateur: "Ouf, oui, ce sont tous ces sites Web de nos jours, ils ne vous facilitent certainement pas la tâche. Eh bien, je vais me débrouiller. pour quoi je suis ici. "

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

Navigateur: "Hé utilisateur! Le site Web est prêt. Allez chercher vos nouvelles!"

131
Ilari Kajaste

Comment fonctionne le Web: HTTP et CGI expliqués

Aussi une bonne explication du CERN - alma mater of Web: Comment fonctionne le Web

enter image description here

20
user12925
  • 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 résoudre le nom d'hôte en une adresse IP.
  • Le navigateur établit une connexion TCP/IP avec l’ordinateur spécifié via l’adresse IP. (Cette connexion est en réalité formée par de nombreux ordinateurs, chacun transmettant les données à l'autre.)
  • Le navigateur envoie la requête HTTP via 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 d'accès, puis recherche ou génère les données demandées.
  • Le serveur Web génère une réponse HTTP contenant ces données.
  • Le serveur Web envoie cette réponse HTTP à la connexion TCP/IP avec votre machine.
  • 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 de leur affichage 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 des données seront des métadonnées spécifiant des ressources supplémentaires à charger, telles que des feuilles de style pour une mise en page détaillée, des images en ligne ou des animations Flash. Ces métadonnées sont à nouveau spécifiées sous forme d'URL et l'ensemble du processus est répété jusqu'à ce que toutes soient chargées.
18
Kylotan

La première étape est la recherche DNS (Domain Name Server). Il utilise les serveurs DNS spécifiés dans vos paramètres réseau (ou fournis par DHCP) pour rechercher le domaine le plus élevé (cnn.com), puis demander au serveur de noms de ce domaine l'adresse IP du sous-domaine spécifié (www.cnn.com).

Une fois l'adresse IP attribuée, votre navigateur commence les communications avec le serveur Web. Ceci est effectué en utilisant le protocole spécifié (qui utilise généralement HTTP 1.1 par défaut). Une requête 'GET' pour '/' est adressé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 code HTML et d'autres informations). Ensuite, le navigateur analyse le document et trouve les URL qu’il a besoin d’incorporer dans la page (comme des images ou des feuilles de style liées) et effectue des requêtes GET sur chacune d’elles.

De plus, le navigateur fait automatiquement une requête GET pour '/favicon.ico' (pour afficher la petite icône CNN en regard du titre du site).

Votre navigateur spécifiera probablement aussi dans les en-têtes de sa demande qu'il souhaite que le contenu de la réponse soit compressé à l'aide de l'algorithme gzip. Cela rend le téléchargement de fichier beaucoup plus petit, si le serveur le prend en charge. Tout cela est transparent pour vous, même s’il s’agit de télécharger un fichier Zip et de 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, le cas échéant, envoie 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 à sa copie en cache, il demande à nouveau le contenu complet du document et actualise la page. Sinon, il utilise uniquement votre copie locale.

12
wahnfrieden

Ce qui se passe du côté de CNN manque aussi loin des autres réponses:

  • Une machine de CNN reçoit le message de votre ordinateur demandant la page.
  • Il redirige cette demande vers l'un des nombreux ordinateurs utilisés par CNN pour son site Web (la raison en est que, de cette manière, vous pouvez répartir le travail de compilation des pages Web de réponse sur plusieurs 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 peut-être que certaines choses vont changer avant de vous l’envoyer (par exemple, l’annonce en haut, peut-être l’actualité). Parfois, les ordinateurs assemblent la page à partir de nombreux petits composants chaque fois qu'ils reçoivent une demande. pas sûr de ce que fait CNN
  • la réponse se propage à travers le réseau vers votre ordinateur, qui l'affiche ensuite.
  • la réponse n'incluait pas les images: votre ordinateur envoie ensuite une autre demande pour les images, et le même scénario se produit à peu près.
8
redtuna

Ce n’est évidemment pas une explication technique, mais c’est une jolie aide visuelle (de l'excellent Vladstudio.com ) qui peut être utile à certains:

How Internet Works

6
grautur

Les informations que vous venez de demander pourraient remplir une douzaine de livres. Mais voici ma tentative de l'expliquer: votre navigateur demande à votre système d'exploitation de trouver l'adresse IP de cnn.com. Ensuite, votre système d'exploitation demande à un serveur DNS l'adresse IP de cnn.com. L'IP est envoyé au gestionnaire qui contacte l'adresse IP et demande la page. cnn.com vous envoie ensuite une page HTML. Les navigateurs analysent le code HTML et envoient les informations au rendu HTML. Le navigateur indique ensuite au système d’affichage ce qu’il doit afficher à l’écran.

1
AyexeM

Jeff Moser avait sur son blog une excellente analyse technique d'une demande HTTPS: Les premières millisecondes d'une connexion HTTPS .

1
Igal Tabachnik

Il y a une vidéo vraiment chouette de "Sendung mit der Maus" (une émission de télévision allemande très populaire qui explique la technologie pour les enfants):

Comment fonctionne Internet (Comment Internet fonctionne-t-il?).

Malheureusement en allemand seulement, mais drôle même sans le texte. Les hommes avec des casques amusants jouent les paquets IP et les données sont écrites sur des cartes papier. Classique :-).

BTW, les explications sont en fait assez bonnes.

1
sleske