Internet c’est ce qui définit la totalité des réseaux permettant la communication entre machines à travers divers protocoles.
Internet c’est un réseau de réseaux.
Spoiler alert : cet article est une simplification du fonctionnement
Comment se diffuse l’information à travers les millions de kilomètres de câble et de fibre optique ?
Prenons l’exemple d’une messagerie instantanée.
Comme je disais c’est un réseau de machine à machine.
Si j’envoie un email à Pierre, de mon téléphone au sien, le courrier électronique passera par une multitude de machines à commencer par les box de nos fournisseurs d’accès internet (FAI), avant de parcourir le “cloud”.
Mon téléphone est connecté à internet par ma box, à laquelle je suis connecté par du wifi, ce protocole si connu. En l'occurrence ma box est le point central du réseau de mon appartement. Elle est connectée à chaque appareil et créé un réseau local.
Elle est aussi reliée à l’internet mondial, ce qui permet de faire un pont entre ces deux réseaux.
Mon message part de mon téléphone, passe par ma box, traverse le “cloud”, arrive sur la box de Pierre puis son téléphone.
Vous imaginez bien que ce fameux cloud n’est pas vraiment un nuage mais un grand ensemble de machines regroupées en immenses réseaux. Des câbles, des relais, des routeurs, des DNS…
Mais on y reviendra !
L’adresse IP est assez similaire à une adresse postale.
Une adresse IP est l’identifiant unique d’une machine au sein d’un réseau. Elle est composée de 4 nombres de 0 à 255, séparés par des points.
Reprenons le réseau de ma maison : Ma box a une adresse qui est par exemple 192.168.0.1, mon téléphone a l'adresse 192.168.0.2 et mon imprimante 192.168.0.3.
Pour faire simple, chaque appareil se connecte à ma box. C’est elle qui attribue une adresse IP aux nouveaux appareils (on parle de DHCP).
Donc, quand j’imprime les documents que Pierre m’envoie ça donne une communication un peu comme celle-ci dans le réseau local de chez moi : “Hey la box 192.168.0.1, je suis le téléphone 192.168.0.2 et j’aimerais envoyer le fichier à imprimer à l’imprimante 196.168.0.3”.
La box fera passer le message à qui de droit.
Concernant les adresses IP sur l'internet public maintenant. Ma box est reliée au réseau internet du monde extérieur, en passant par les câbles de mon FAI.
Donc, ma box à une deuxième adresse IP, celle qui correspond à une adresse IP publique sur les réseaux “postaux” de l’internet. Elle sera différente de l’adresse IP du réseau local de chez moi, disons au hasard 185.53.177.52.
Mon téléphone n’a pas d’IP public disponible sur internet, c’est ma box qui joue le rôle de porte d’entrée entre chez moi et l’internet.
Quand Pierre m’envoie un fichier, il part de son téléphone, pour arriver sur sa box, puis sa box s’adresse à ma box sur son adresse IP publique (210.3.95.168), puis ma box s’adresse à mon téléphone sur le réseau local (communication entre 192.168.0.1 vers 192.168.0.2).
Kapich ?
Alors, le web…
Le web c’est ce qu’on connaît tous ! C’est ce qui nous permet de se balader de site en site.
On peut résumer ça à une couche au-dessus du fonctionnement d’internet pour avoir des interfaces visuelles, qui vont nous permettre de lire, de créer de l’information, de participer à un échange de données.
Si on veut vraiiiiiment simplifier : Avec le web on communique d’humain à humain en passant par des machines, alors qu’avec internet on parlait de machine à machine avec des actions d’humains…
Le web se base sur des noms de domaines (par exemple : la-briqueterie.fr) et des protocoles comme le HTTP (vous savez le http:// dans votre navigateur).
Ça permet entre autres de rendre plus lisible et mémorisable les adresses de ses sites, de ses pages web préférés…
C’est nettement moins clair si je vous dis que ce n’est pas super éthique d’acheter ses livres sur 52.94.236.248 ou que tu aurais dû poser ta question sur 172.217.18.238 plutôt que de la poser à toute la tablée pendant le repas de midi.
Ces adresses IP correspondent aux serveurs qui vont vous donner accès aux sites d’Amazon ou Google.
Par exemple, quand sur mon téléphone je tape “http://la-briqueterie.fr” je demande d’aller sur le site de La Briqueterie mais je ne donne pas d’adresse IP. Alors mon navigateur va demander à un DNS de lui donner l’adresse IP correspondant à “la-briqueterie.fr”.
Une fois que le DNS m’a donné l’IP du serveur, mon navigateur peut demander au serveur de la briqueterie de lui envoyer le site à afficher.
C’est aussi “simple” que ça.
Un DNS c’est un répertoire public qui détient toutes les adresses IP du monde entier. Les machines s'adressent à eux pour trouver les IP qui correspondent à un nom de domaine. Comme ça, si on veut changer de serveur (et donc d’adresse IP), en cas de refonte par exemple, vous ne serez pas impacté, vous irez toujours sur la-briqueterie.fr et vous verrez notre nouveau site.
Le DNS permet aussi de faire plein d’autres choses pour plusieurs autres protocoles que le HTTP. Notamment quand Pierre configure vos serveurs mails pour qu’on ne tombe pas dans les spams.
Mais ça, on vous le racontera plus en détail dans un autre épisode.
Ah ! Voilà ! Vous allez pouvoir comprendre un petit peu plus un développeur et la base de comment ça marche internet. Comme quoi ce n’est pas si compliqué finalement.
Je vous parlais de serveur de la-briqueterie.fr qui avait une IP il y a encore quelques minutes.
Un serveur c’est une machine. Ça peut être un ordinateur qui tourne dans la chambre de votre pote geek, comme un ensemble de rack dans un immense hangar d’OVH. On peut faire des trucs compliqués avec des serveurs, mais la plupart du temps ça peut se résumer à l’ordinateur de quelqu’un d’autre.
Spoiler alert : Santa Claus does not exist either
Sur un serveur on va avoir deux parties : celle que vous allez voir “Le Front” (frontend) et celle qui va rester sur le serveur “Le Back” (backend).
À l’inverse d’une application mobile ou d’un logiciel, un site web ne s’installe pas sur votre navigateur. Il faut donc bien qu’on vous envoie ce qui doit être affiché, n’est ce pas ?
C’est exactement ce que vous allez faire quand vous tapez “la-briqueterie.fr” dans votre navigateur : Vous demandez à un DNS l’IP du serveur correspondant, puis vous demandez la page d’accueil du site au serveur.
Le serveur vous renvoie un groupe de fichier HTML, CSS et JS qui composera dans votre navigateur la page demandée. C’est ce qu’on appelle le front.
Voilà.
Le scénario que je viens de décrire, le back va juste voir la demande passer et envoyer les fichiers correspondant.
Par contre si on parle d’une page de login comme “la-briqueterie.fr/login” alors vous allez récupérer l’adresse IP par un DNS qui correspond au nom de domaine de academie.la-briqueterie.fr puis demander au serveur la page “login”.
Vous allez recevoir le front correspondant à cette page et vous pourrez remplir le formulaire de login. Une fois appuyé sur le bouton de connexion le front renverra une demande au serveur (une requête HTTP), au back donc, pour vérifier que vous vous connectez avec les bons identifiants et vous servir la page correspondant à votre compte.
Le travail du “back” ici est de contenir la logique qui va permettre de fournir le bon “front” en fonction des configurations et du code qu’il contient.
Si j’utilise un mauvais login alors une page d’erreur, si je me connecte en tant qu’apprenant alors j’aurais le front avec mes cours disponibles, et si je me connecte en tant qu’admin alors j’aurais la superbe interface top secrète de la briqueterie sous les yeux.
Cette base de compréhension est assez essentielle pour saisir un peu tout ce qu’il se passe dans le digital et surtout les différentes possibilités et limites de chaque outil.
Cela peut sembler assez complexe. Mais en fait, il s'agit simplement d'une particule essentielle et vitale dans notre vie, qui nous permet de découvrir ou d’imaginer de nouvelles fonctionnalités chaque jour.
Alors, si vous devenez extrêmement fascinés, Remi Arnaud sera ouvert à des discussions intenses autour de ce sujet. N'hésitez pas.