Navigateur 1/3

Navigateur internet (1/3)

 

Sauf si vous êtes une personne âgée ou un ermite, vous avez été amené au moins une fois à utiliser un navigateur internet pour par exemple acheter sur votre e-commerce préféré, organiser votre prochain voyage ou consommer des vidéos Youtube au travail

Comme souvent, on utilise des outils quotidiennement sans se poser de question sur leur fonctionnement. Aujourd’hui je vous propose à travers trois articles d’en apprendre plus.

Pour bien commencer, je vous propose de voir ses interactions sur le web. Tout d’abord nous verrons comment le navigateur arrive a trouvé le bon serveur. Puis on comprendra comment il se connecte à ce dernier. Pour finir on verra comment il réalise la connexion de manière sécurisée.

Trouver le bon serveur sur le web

 

Avant de plus développer il faut savoir que les ordinateurs connectés à internet se divisent  en deux catégories:

  1. Les clients ils regroupent tous nos appareils que nous utilisons pour nous connecter à internet (ordinateur, téléphone, tablette…). Ils peuvent aller sur le web grâce à un navigateur internet ou une application mobile.
  2. Les serveurs sont des « gros » ordinateurs qui stockent des entités joignables par les clients. Ces entités peuvent être des pages web, des données, des images, des vidéos… Le serveur envoie aux clients une copie du contenu stocké.

Les interactions pour trouver le bon serveur sur le web se déroulent en deux étapes comme illustré ci-dessous :

  1. En tapant l’url de votre site, vous allez d’abord contacter un serveur DNS. Il va vous renvoyer à partir du nom du site une adresse IP. Qu’est-ce qu’une adresse IP ? C’est une « adresse » constituée de 4 nombres sous la forme XXX.XXX.XXX.XXX. Elle permet de trouver le serveur qu’on recherche. On peut le considérer comme l’équivalent de l’adresse postale pour les ordinateurs.
  2. Ensuite l’ordinateur peut trouver le bon serveur, se connecter et commencer à interagir avec lui.

Maintenant que l’ordinateur à trouver le bon serveur, il faut qu’il se connecte dessus. Comment la connexion entre un client et un serveur se déroule?

Se connecter entre l’ordinateur et le serveur.

Pour se connecter, l’interaction va utiliser le protocole TCP (Transmission Control Protocol). Ce dernier est un protocole d’hôte à hôte permettant la communication entre deux ordinateurs/serveur dans un réseau d’IP ici internet. Le protocole TCP utilise une liaison à trois voies :

  1. Le navigateur envoie un paquet SYN (synchronise) au serveur dont le numéro de séquence est un nombre A aléatoire.
  2. Le serveur répond avec un paquet SYN-ACK  (synchronise acknowledge). La partie « ACK » se trouve être A incrémenté de 1 (A+1). Le numéro du paquet  « SYN-ACK » est un nombre B aléatoire.
  3. L’ordinateur va envoyer un paquet ACK servant d’accusé de réception. Le numéro du paquet « ACK » se trouve être A incrémenté de 2 tandis que le numéro porté par ACK est B+1.

Maintenant l’ordinateur et le serveur se sont bien connectés.

Se connecter à un serveur c’est bien. Se connecter en toute sécurité c’est encore mieux voir vitale. Imaginez, vous allez sur le site de votre banque protégé uniquement par un pseudonyme et un mot de passe. Vous vous connectez sur le wifi d’un aéroport. Un hacker présent sur les lieux écoute le trafic sur ce wifi. Il récupère vos identifiants transmis en clair. Il peut se faire passer pour vous et faire des actes néfastes comme vider votre compte en banque.

Pour éviter ces problèmes il y a la possibilité d’avoir une connexion sécurisée entre un serveur et son ordinateur.

Connexion sécurisée entre serveurs et ordinateurs

De plus en plus de sites internet nécessitent le protocole https  pour être « visité » et non http . Voici comment fonctionne le https

  1. Le navigateur contacte le serveur en lui présentant une liste de méthode de chiffrement.
  2. Le serveur répond en renvoyant un certificat fourni par une autorité indépendante. Il permet de valider qu’on se connecte sur le bon serveur. Ce certificat est accompagné par une clé de session.
  3. Maintenant la communication peut commencer comme vu dans la précédente partie. Il y a juste un chiffrement en plus avec cette clé de session pour que la communication ne puisse être comprise si elle est interceptée.
  4. Le serveur web renvoie la réponse à la requête et ce dernier sera déchiffrée par le navigateur grâce à sa clé de session.

 

Et après?

Maintenant que la connexion est faite, on peut se demander comment le contenu de la page est envoyé au client ?

  1. Le navigateur utilise le protocole « http » en utilisant la méthode get  signifiant qu’il souhaite recevoir le contenu de la page demandée.
  2. Le serveur va envoyer sa réponse en plusieurs paquets en utilisant le protocole TCP. Pour chaque paquet, le navigateur renverra un ACK pour ne pas envoyer trop de paquets d’un coup. Si le client est submergé, il ne pourra pas tout traiter et certains paquets seront supprimés. En fonction du délai de réponse entre l’envoi du paquet et l’ACK, l’algorithme (programme) TCP slow start détectera la bande passante disponible et pourra réguler efficacement le débit des envois.

 

Après avoir reçu la réponse le navigateur va le traiter en deux étapes :

  • Parsing : il va analyser les fichiers de code html, css et javascript, extraire le contenu pour pouvoir le traiter.
  • Rendu : il va retravailler le contenu pour pouvoir donner toutes les informations permettant au navigateur de l’afficher.

 

Pour finir

Comme nous l’avons vu, le navigateur internet utilise le serveur DNS pour obtenir l’adresse IP du site recherché. Ensuite il se connecte à lui en échangeant des paquets et peut même chiffrer ses connexions et demander des certificats pour sécuriser les échanges.

Bien sûr, j’aurai pu rentrer plus en détails dans les explications en parlant de l’ipv6 ou de http/3 mais ne voulant pas vous provoquer un avc j’ai préféré rester simple.

Après avoir vu les interactions des navigateurs internet sur le web, il serait intéressant de voir comment ils ont été créé et ont évolué pendant ces dernières décennies. Dans le prochain article, leur évolution vous sera raconté et vous verrez comment nous sommes passé d’un monde expérimental à des monopoles qui ont tous fini par être détrôné à la situation d’aujourd’hui avec ses nouvelles règles.

Blog Comments

[…] premier article de la trilogie des « Navigateurs Internet » nous a montré comment les navigateurs trouvaient le […]

[…] premier article nous a montré comment les navigateurs trouvaient le site internet à afficher et comment ils s’y […]

Leave a Reply to Navigateur Internet 3/3 – Build My Tech Cancel Reply

*Please complete all fields correctly

Related Blogs