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.
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.
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 !"
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
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.
Ce qui se passe du côté du CNN est absent des autres réponses :
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.