Architecture Client-Server

Tu as surement fait le bon choix en choisissant la pilule rouge 💊, embarquons dans ce cyberespace 🌐 en explorant comment les messages naviguent entre les machines en étudiant l'architecture client-serveur

Saisir cette architecture va te permettre d'avoir une vision plus globale du Web et comprendre globalement comment le code Web, que vous allez écrire 🧑‍💻, sera interprété et exécuté ⚙️ pour enfin s'afficher sur la machine de l'internaute.

D'autre part, ces grands principes du Web te seront aussi utiles plus tard lorsqu'il faudrait déboguer 🐞 pour identifier, par exemple, si la source d'un problème est du côté serveur ou du client.

Sans plus attendre, explorons ces concepts ! 🤠

Comparaison Client-serveur et Échange Postale

Pour saisir plus facilement ces concepts nous allons comparer l'architecture client-serveur à une correspondance postale ✉️ entre Alice 👩🏻‍🦰 et Bob 👦🏻.

Voici les différents éléments de comparaison :

  • Bob 👦🏻 représente le serveur 🗄️
  • Alice 👩🏻‍🦰 représente le client, en particulier un navigateur web (Chrome, Firefox…) 👩🏼‍💻
  • la lettre représente le code source 🔡 de la page Web
  • l'enveloppe ✉️ représente le protocole TCP
  • le cachet 💌 sur l'enveloppe représente le protocole https
  • l'adresse postale 📍 représente l'IP
  • la Poste (le moyen de transport) 🚚 représente infrastructure réseau
Analogie client server
Une analogie client-serveur

Les Étapes des Échanges Alice-Bob et Client-Serveur

Voyons étape par étape, cette comparaison :

  1. Bob rédige la lettre manuscrite 📝, ce serait l'équivalent du code HTML, CSS et Javascript hébergé sur un serveur Web. Ces plateformes sont souvent des clouds ☁️ où le code est répliqué sur plusieurs machines pour éviter de la perdre et où la donnée est accessible très rapidement via des hubs répartis aux quatre coins du monde 🌍. Parmi les plus connus, il y a AWS, Hostinger, et en Europe OVH qui sont des plateformes qui peuvent héberger ce type de code.
  2. Bob met la lettre dans une enveloppe ✉️. L'enveloppe est l'équivalent du protocole TCP qui permet de transporter des messages sur internet. Dans ce cas du code Web mais cela aurait pu être un tout autre type de contenu : une vidéo, une image, un fichier PDF…