Navigateur - noelno/dovelei GitHub Wiki
- Je saisis une adresse. Quand j'écris www.exemple.com, j'envoie en réalité www.exemple.com. (avec un point à la fin). Ce point final représente le serveur racine d'internet.
- Mon système d'exploitation et mon navigateur recherchent dans le cache et dans le fichier
hosts
s'il n'y a pas déjà l'ip du site que je cherche d'enregistré (suite à une navigation précédente). - S'il ne trouve rien, le système d'exploitation fait appel au service de résolution des noms de domaine (ex : nslookup sous Linux) et lui transmet la requête
- Ce service contacte le serveur racine du DNS. Celui-ci va lui donner l'adresse du serveur TLD correspondant au domaine de premier niveau com.
- Le service contacte le serveur TLD com. Celui-ci va lui donner l'adresse de exemple.com (il a cette adresse parce que lorsqu'un nom de domaine est crée, les registrars mettent à jour les TLD pour qu'ils sachent à quoi correspond ce nouveau domaine).
- Le service contacte le serveur autoritaire exemple.com, celui-ci va lui donner l'ip de www.exemple.com.
- Toutes les adresses que le service de résolution aura recueillies seront stockées dans le cache pour réduire le temps de requête de sites consultés régulièrement.
Une fois que le navigateur a récupéré l'ip du serveur cible, il lui envoie une requête HTTP sous cette forme :
Request-Line = Méthode URI-demandée Version-HTTP
0 à n headers
un saut de ligne
(facultatif) un message
Exemple :
GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Et le serveur renvoie une réponse sous cette forme :
Status-Line = Version-HTTP Code-Status Reason-Phrase
0 à n headers
un saut de ligne
(facultatif) un message
Exemple :
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>