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.
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.
Réponses:
Navigateur: "Ok, un utilisateur demande cette adresse: www.cnn.com. Je suppose qu’il n’existe aucune barre oblique ni quoi que ce soit, il s’agit d’une requête directe d’une page principale. Aucun protocole ni port n'a été défini, alors je suppose que c'est HTTP et que je vais porter le port 80 ... bon, tout d'abord. Hey DNS, mon ami, réveillez-vous! Où se cache ce www.cnn.com? "
DNS: "Bon ... attendez une seconde, je vais demander aux serveurs du FAI. Ok, ça ressemble à 157.166.226.25."
Navigateur: "Ok. Internet Protocol Suite, à 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 afin que je sache quoi aller chercher ... eh bien, pas que vous vous souciez de ça, je suppose. "
TCP / IP: "Qu'est-ce que tu veux dire à mon tour ? Comme si je ne travaillais pas juste pour le DNS? Mon Dieu, que faut-il pour obtenir un peu de reconnaissance ici ..."
Navigateur: ...
TCP / IP: "Ouais, ouais ... Connexion ... Je vais juste demander à la passerelle de la transmettre. Vous savez, ce n’est pas si facile, je vais devoir diviser votre jolie demande en plusieurs parties Donc, ça va jusqu'au bout, et assembler tout ce qu'ils renvoient parmi les milliers de colis que je reçois ... ah, d'accord, vous vous en fichez. Les chiffres. "
Pendant ce temps, au siège de CNN, un message se termine finalement à 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: "Bon, ça ira! Page de garde, n'est-ce pas?"
Serveur de base de données CNN: "Yey! Travaillez pour moi! De quel contenu avez-vous besoin?"
Moteur de script CNN côté serveur: "... euh, désolée DB, j'ai dans ma mémoire cache une copie de la page de couverture, pas besoin de compiler quoi que ce soit. Mais bon, prenez cet ID utilisateur et stockez-le, je vous l'enverrai au client aussi, donc nous savons à 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 mon Dieu, pourquoi est-ce que j'ai le sentiment que ça va être un gros ..."
Navigateur: "Euh, wow ... cela a toutes sortes de code javascript ... tas d'images, quelques formes ... Bon, ça va prendre du temps à rendre. Mieux vaut y aller. Hey, système IP, Nous avons besoin de quelques feuilles de style de i.cdn.turner.com - via HTTP et nous demandons le fichier /cnn/.element/css/2.0/common.css. puis obtenir certains de ces scripts à i.cdn.turner.com aussi, j'en compte six à ce jour ... "
TCP / IP: "Je comprends la photo. Donnez-moi juste les adresses du serveur et tout ça. Et intégrez ce fichier dans la requête HTTP, je ne veux pas m'en occuper."
DNS: "Vérification du fichier i.cdn.turner.com ... hé, un détail, il s’appelle cdn.cnn.com.c.footprint.net. IP est 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 mon Dieu, quel plaisir ça sonne comme ..."
Navigateur: "Il y a aussi toutes sortes d’images! Et ce CSS a l’air un peu méchant ... oui, alors si cette partie-là y passe, et si cette ligne est en haut ... comment serait-ce que cela irait plus ... non Oh, mais cet autre fichier CSS annule cette règle ... Eh bien, celui-ci ne sera pas une pièce facile à restituer, c'est sûr! "
TCP / IP: "Ok, ok, arrêtez de me distraire un instant, il y a encore beaucoup à faire ici."
Navigateur: "Utilisateur, voici un petit rapport d’avancement pour vous. Désolé, tout cela peut prendre quelques secondes, il y a environ 140 éléments différents à charger et jusqu’à 16 à ce jour."
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 gères là-bas? Cela semble être tout à fait une charge pour toi 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. 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 avec le DNS!"
Navigateur: "Hé utilisateur! Le site Web est prêt. Allez chercher vos nouvelles!"
Comment fonctionne le Web: HTTP et CGI expliqués
Aussi une bonne explication du CERN - alma mater of Web: Comment fonctionne le Web
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 supérieur (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 à côté 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.
Ce qui se passe du côté de CNN manque aussi loin des autres réponses:
Ce n’est évidemment pas une explication technique, mais c’est une jolie aide visuelle (de l’excellent Vladstudio.com ) qui pourrait être utile à certains:
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.
Jeff Moser avait sur son blog une excellente analyse technique d'une demande HTTPS: Les premières quelques millisecondes d'une connexion HTTPS .
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):
Die Sendung mit der Maus - Wie funktioniert das Internet (Comment Internet fonctionne).
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.