Nous réalisons cette action plusieurs dizaines de fois par jour, sans pour autant comprendre ce qui se passe.

Aujourd'hui, je vous propose de comprendre un phénomène, en apparence complexe, avec un exemple simple : celui d'une personne essayant d'accéder à la plateforme Coment.

De manière synthétique, il existe 3 phases successives :

  • Une phase d'association nom de domaine – adresse IP du serveur qui va recevoir la réponse : la résolution de noms de domaine
  • Une fois l'adresse IP du serveur identifié, une phase de construction de la réponse par le serveur.
  • Une fois la réponse obtenue, une phase de traitement de la réponse par le navigateur.

La résolution de noms de domaines

C'est la première étape : Vous venez de taper https://coment.in dans la barre d'adresse de votre navigateur.

On ne peut pas poursuivre cette étape sans comprendre ce qu'est une adresse IP et un serveur.

Pour simplifier, le serveur c'est un service (physique – comme un ordinateur – ou logiciel) qui a pour vocation de répondre à une demande (la requête) sur un réseau informatique.

Concernant l'adresse IP, il s'agit d'une suite de numéros reliés par des caractères qui permettent d'identifier un ordinateur sur un réseau. C'est un identifiant unique. À chaque fois que vous réalisez une action sur le réseau, cet identifiant est envoyé dans les requêtes pour vous identifier. Elle sert également pour identifier le destinataire de votre requête, ce que ne permet pas de faire seul un nom de domaine.

Néanmoins, vous avez demandé à votre navigateur de vous sortir l'adresse https://coment.in et pas xxx.xxx.xxx.xxx (chaque xxx est un chiffre entre 0 et 255), alors comment va faire votre navigateur pour comprendre où aller ?

À ce stade-là si c'est la première fois que vous vous connectez sur cette URL, votre navigateur ne sait probablement pas à quel serveur envoyer votre requête. Ce n'est pas un problème, car votre ordinateur possède dans sa configuration les adresses IP de serveurs spécifiques qui savent faire la traduction nom de domaine / adresse IP : on les appelle des serveurs de noms. Votre navigateur interroge alors le serveur de nom du nom de domaine coment.in qui va lui donner en réponse l'adresse IP où joindre le serveur du domaine coment.in. Cela se fait en quelques millisecondes, de telle sorte que c'est quasi imperceptible pour l'utilisateur.

Il est possible de configurer une relation entre un sous-domaine (www.philippedemangou.fr est un sous-domaine du domaine philippedemangou.fr) et une adresse IP pour qu'un serveur puisse répondre à des requêtes lorsqu'on le sollicite. Souvent, votre développeur va vous dire "qu'il a changé les DNS", lorsqu'il a effectué ces modifications. Il s'agit en réalité de modifier la configuration du domaine laquelle se fait via le service d'enregistrement de noms de domaines que vous avez choisi (Google Domains, OVH, Gandhi ou autres).

La phase de construction de la réponse par le serveur

Le serveur vient de recevoir la requête https://coment.in et sa mission est de construire la réponse qu'il va renvoyer.

Quand vous demandez à un développeur de vous construire un site web, il va principalement intervenir sur cette partie. C'est-à-dire qu'il va, très souvent grâce à des logiciels installés sur le serveur, programmer des réponses à des requêtes. Par exemple, lorsque vous avez demandé d'accéder à cette page. Le logiciel de blogging que j'utilise Ghost est programmé pour vous répondre avec une page HTML qui aura tel comportement et telle mise en page. Il existe d'autres logiciels selon les besoins que vous avez : commerce électronique, blogging, forums.

Une page HTML, c'est tout simplement la description des éléments de contenu de la page. Voici d'ailleurs un exemple d'une page web qui afficherait un titre "Hello World".

<!DOCTYPE html>
<html lang="fr">
    
  <head>
    <meta charset="utf-8">
    <title>Le titre qui apparait dans l'onglet du navigateur</title>
    <!-- On peut avoir d'autres méta-données ici -->
    <!-- Souvent, on appelle les fichiers de style css et de comportements js ici. Ce n'est pas obligatoire. Pour des raisons de performances, les fichiers peuvent être appelés ailleurs --> 
  </head>
    
  <body>
    <!-- Ici, on placera tout le contenu à destination 
    de l'utilisateur -->
      <h1>Hello World</h1>
  </body>
</html>

Le traitement de la réponse par le navigateur

Le serveur vient de répondre à la requête https://coment.in. À quelques exceptions près, comme vous lui avez demandé une page web (protocoles https:// et http:// – non sécurisé), il va vous renvoyer une page HTML. Cette page HTML se compose d'un certain nombre d'indications concernant les ressources à charger : les fichiers CSS (le style de la page), les fichiers JavaScript (le comportement de la page) et probablement des images et des vidéos. Par ailleurs, ces fichiers peuvent se trouver sur le même serveur ou non et votre navigateur va effectuer la même opération (résolution nom de domaine, construction de la réponse, traitement de la réponse) pour les récupérer.

Voilà, j'espère que vous aurez appris quelques trucs. N'hésitez pas à donner vos avis constructifs en commentaires.