Navigateur - noelno/dovelei GitHub Wiki

Résolution DNS

  1. 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.
  2. 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).
  3. 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
  4. 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.
  5. 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).
  6. Le service contacte le serveur autoritaire exemple.com, celui-ci va lui donner l'ip de www.exemple.com.
  7. 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.

Requête

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>
⚠️ **GitHub.com Fallback** ⚠️