Comment ça marche : les requêtes sur Internet ?
Que se passe-t-il lorsque vous demandez à votre navigateur Internet d'afficher une page Web ? Cet article vous explique comment tout cela fonctionne. 🌐
Lorsque vous allez sur https://www.google.fr
depuis votre navigateur Internet, vous obtenez la page de recherche Google. Seules quelques petites secondes se sont écoulées, mais, entre la demande de la page et son affichage, une multitude de choses se sont passées. Nous allons tenter de vous l'expliquer.
L'adresse (URL)
Tout démarre par une adresse Internet, comme Google : https://www.google.fr
Cette adresse, nommée URL (Uniform Resource Locator), a pour principale utilité de vous permettre de la mémoriser facilement. Elle se décompose en plusieurs parties :
- Le protocole : HTTP ou HTTPS
- Le domaine :
google.fr
- L'extension (ou domaine de premier niveau, TLD) : dans notre exemple
.fr
, il en existe des centaines : .com, .org, .us, etc.
- L'extension (ou domaine de premier niveau, TLD) : dans notre exemple
- Le sous-domaine : www
- Le port : s'il n'est pas affiché, le port par défaut est le numéro 80 qui correspond au protocole HTTP non sécurisé et le 443 pour du HTTPS. Pour Google, on aurait pu avoir
http://www.google.fr:80
ouhttps://www.google.fr:443
Cette adresse pointe en réalité vers un ordinateur connecté à Internet que l'on nomme serveur et qui dispose d'une adresse IP associée à un ou plusieurs noms de domaine. L'adresse IP est une série de 4 nombres allant de 0 à 255 pour IPv4, par exemple 64.233.166.94, ou de 6 nombres en hexadécimal (de 0 à 16, les chiffres après 9 étant remplacés par des lettres de a à f), par exemple 2a00:1450:4007:80e::2003.
Résolution DNS
La première étape pour votre ordinateur est donc de traduire ce nom de domaine en adresse IP. C'est ce que l'on nomme la résolution DNS. Pour cela, votre ordinateur vérifie en premier dans son cache DNS, ce qui lui évite de demander à chaque page la traduction nom de domaine/adresse IP. S'il ne connait pas cette correspondance, l'ordinateur fait appel à des serveurs de noms ou DNS (Domain Name Server). Ces derniers permettent de faire l'association entre le nom de domaine google.fr
et l'adresse IP de son serveur. Il n'y a pas un seul serveur DNS, il en existe des milliers, connectés les uns aux autres par le maillage du réseau Internet. En fonction de votre fournisseur d'accès à Internet et de la configuration IP de votre ordinateur, le serveur de nom pourra varier.
Votre ordinateur demande à un serveur DNS racine s'il connaît la réponse à la question suivante :
Quel ordinateur a le nom de domaine google.fr ?
Le serveur DNS racine passe le relai à un autre serveur DNS autoritaire pour le domaine de premier niveau (l'extension ou TLD). Ce dernier passe le relai à un autre serveur qui connait le nom de domaine pour l'extension demandée, puis interroge le serveur DNS du domaine spécifique.
Votre ordinateur reçoit la réponse du serveur DNS contacté :
google.fr est à l'adresse IPv4 64.233.166.94.
Votre ordinateur connaît désormais le serveur qui héberge google.fr
. Vous pouvez avoir un exemple avec les commandes dig
ou nslookup
sur votre ordinateur.
Requête HTTP
Votre ordinateur envoie une requête HTTP à l'adresse IP. Il lui demande au serveur distant de lui fournir la page pour www.google.fr
.
GET / HTTP/1.1 Host: www.google.fr User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr-fr,en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: PHPSESSID=jt45uvjq435r4q7ib3vtdjq120 Pragma: no-cache Cache-Control: no-cache
La requête passe par votre carte réseau, par votre box Internet qui est connectée au réseau de votre fournisseur d'accès Internet (FAI), par son réseau, puis par le réseau de l'hébergeur, puis aboutit sur le serveur qu'avait indiqué le serveur DNS à votre ordinateur dans la première phase. Vous pouvez avoir un aperçu du cheminement réalisé avec la commande traceroute
ou tracert
sur votre ordinateur.
Le serveur lit dans les paquets HTTP qu'il a reçu l'adresse que votre navigateur lui demande : Host www.google.fr
. En fonction du port demandé, il passe le relais à des logiciels spécifiques dont il dispose : le serveur Web s'il s'agit d'une page Web, le serveur FTP ou encore le serveur de courrier pour les e-mails.
Dans le cas d'une page Web, le serveur Web (Apache, nginx, etc.) prend donc le relais. Il vérifie dans sa configuration s'il connait le site demandé et son emplacement sur le serveur. S'il le trouve, il retourne le contenu du fichier qui correspond à la page et répond à votre ordinateur en faisant le cheminement inverse jusqu'à votre ordinateur. Sinon, il retourne une page d'erreur, comme une page 404.
Rendu de la page Web
Là, il ne reste plus qu'à décoder la page reçue, à la décoder et à l'afficher. C'est le rôle de votre navigateur Internet. Il analyse le code source de la page, télécharge les ressources complémentaires (CSS, JavaScript, images, vidéos, etc.) et affiche la page Web.
Pour éviter de télécharger à chaque fois les ressources, le navigateur les met dans un cache. Cela lui permet de répondre plus vite et d'économiser du temps lors des prochains affichages de la page Web demandée.