Vous ouvrez le navigateur, entrez google.com, et une seconde plus tard, vous voyez la page. De la magie ? Non. Derrière cette seconde se cache toute une chaîne d'événements que chaque développeur doit comprendre. Et si vous voulez penser comme un hacker (éthique, bien sûr 😏), alors le savoir n'est pas une option, mais une nécessité.
Mettons tout en ordre. Sans être ennuyeux, avec des exemples de la vie.

🔍 DNS — l'annuaire téléphonique d'Internet
Les ordinateurs ne comprennent pas google.com. Ils fonctionnent avec des adresses IP comme 142.250.74.206. Et le DNS (Domain Name System) est un énorme annuaire téléphonique qui traduit les adresses humaines en adresses de machines.
Que se passe-t-il lorsque vous entrez l'adresse du site :
Cache du navigateur — peut-être que vous êtes déjà entré ? Alors l'IP est déjà enregistrée.
Cache du système d'exploitation — le système se souvient aussi.
Routeur — même lui garde son cache DNS.
Résolveur DNS du fournisseur — si elle n'est trouvée nulle part, la demande est envoyée au serveur du fournisseur.
DNS racine → TLD → serveur faisant autorité — chaîne de requêtes jusqu'à ce qu'une réponse soit trouvée.
Toute cette histoire prend des millisecondes. Mais voici ce qui est intéressant du point de vue de la sécurité :
Usurpation de DNS - l'attaquant remplace la réponse DNS et vous envoie sur un faux site. Vous entrez bank.com, et vous vous retrouvez sur un clone de fraudeurs. Extérieurement, c'est un pour un. C'est pourquoi un seul DNS ne suffit pas, il faut HTTPS.
Essayez par vous-même : ouvre le terminal et entre nslookup google.com ou dig google.com. Vous verrez comment votre système recherche l'IP.
📡 HTTP — carte postale sans enveloppe
HTTP (HyperText Transfer Protocol) est le protocole par lequel le navigateur communique avec le serveur. Il fonctionne sur le principe de « demande-réponse ».
Anatomie d'une requête HTTP :
GET /profile HTTP/1.1
Host: example.com
Cookie: session_id=abc123
User-Agent: Mozilla/5.0Le serveur répond :
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: session_id=abc123
<html>...</html>Simple, non ? Mais il y a énorme problème: HTTP transmet tout en texte clair. Imaginez que vous envoyez une carte postale par la poste, n'importe quel facteur peut la lire. Identifiant, mot de passe, numéro de carte : tout est visible.
Méthodes HTTP principales :
GET « donnez-moi les données »
POST « voici mes données »
PUT « Mettre à jour »
DELETE « supprimer ceci »
Codes de réponse à retenir :
200 tout va bien
301 redirection
403 interdit
404 non trouvé
500 serveur en panne
Un pirate informatique qui a intercepté le trafic HTTP (par exemple, sur un réseau Wi-Fi public), voit absolument tout. Par conséquent, le HTTP pur est aujourd'hui une vulnérabilité.
🔒 HTTPS : enveloppe scellée
HTTPS est le même HTTP, mais enveloppé dans un cryptage via TLS (Transport Layer Security). Les données ressemblent désormais à un mélange de caractères pour tout le monde, à l'exception de l'expéditeur et du destinataire.
Comment une connexion sécurisée est établie (TLS Handshake) :
Client : « Bonjour, je veux parler en toute sécurité. Voici mes options de cryptage. »
Serveur : « Bonjour ! Voici mon certificat SSL, vous pouvez vérifier que je suis réel. »
Client : vérifie le certificat par l'intermédiaire de l'autorité de certification (CA).
Les deux génèrent une clé secrète partagée.
Suivant toutes les communications sont chiffrées avec cette clé.
Pourquoi un pirate informatique ferait-il cela ?
Même si un attaquant intercepte le trafic HTTPS, il ne verra que des données chiffrées. Mais il y a des nuances :
Versions obsolètes de TLS (1.0, 1.1) présentent des vulnérabilités connues. Certificats mal configurés — si l'utilisateur a l'habitude de cliquer sur « continuer quand même », il peut être trompé. MITM (Man-in-the-Middle) - l'attaquant se place entre le client et le serveur, en substituant son certificat. Faites attention au cadenas 🔒 dans la barre d'adresse !

🍪 Cookie — badge numérique
Protocole HTTP sans état (stateless). Le serveur ne se souvient pas de vous entre les requêtes. Chaque fois, vous êtes un inconnu pour lui. Les cookies résolvent ce problème.
Cookie — un petit morceau de texte que le serveur demande au navigateur de sauvegarder et d'envoyer à chaque requête.
Comment ça marche :
Vous vous connectez au site.
Le serveur crée une session et répond :
Set-Cookie: session_id=xyz789Le navigateur enregistre ce cookie.
À chaque demande suivante, le navigateur envoie :
Cookie: session_id=xyz789Le serveur voit l'ID et comprend : « Ah, c'est le même utilisateur ! »
Types de poupées :
Session - Ils vivent jusqu'à la fermeture du navigateur
Persistent - Vivre jusqu'à la date spécifiée
HttpOnly- JS ne peut pas les lire — protection contre XSS
Sécurisé - Envoyé uniquement via HTTPS
SameSite - Protection contre les attaques CSRF
Pourquoi les pirates informatiques recherchent les cookies :
Si vous volez le cookie de session de quelqu'un d'autre, vous pouvez vous connecter au site au nom de la victime sans login ni mot de passe. Cela s'appelle session hijacking (détournement de session).
Méthodes de vol : XSS (un script malveillant vole des cookies), interception du trafic (si pas de HTTPS), accès physique au navigateur de quelqu'un d'autre.
🎫 Sessions : qui êtes-vous pour le serveur ?
Une session est un mécanisme de stockage des données utilisateur côté serveur. Le cookie ne contient que l'ID de session (clé), et toutes les données (nom, rôle, panier d'achat) sont stockées sur le serveur.
Cookie vs Session — quelle est la différence :
Cookie | Session | |
|---|---|---|
Où est-il stocké | Dans le navigateur | Sur le serveur |
Taille | Jusqu'à ~ 4 Ko | Sans restriction |
Sécurité | Le client peut changer | Le client ne voit que l'ID |
Exemple |
|
|
JWT — une approche alternative :
Au lieu de stocker les sessions sur le serveur, vous pouvez utiliser JSON Web Token (JWT). Il s'agit d'un jeton qui contient des informations cryptées sur l'utilisateur. Le serveur ne stocke pas l'état, tout est à l'intérieur du jeton.
Structure : header.payload.signature
Avantages : évolutivité (aucune base de données de session partagée n'est requise). Inconvénients : vous ne pouvez pas « tuer » un jeton séparé avant l'expiration.
📱 Vous voulez vraiment comprendre - pratiquez !
La théorie est la base, mais la vraie compréhension ne vient que par la pratique. Essayez Code - une application où vous apprenez à programmer en résolvant des problèmes réels. Pas de temps perdu, seulement de la pratique et des explications claires.
Abonnez-vous à notre Chaîne Telegram — des articles utiles sur la programmation, des analyses de sujets et des astuces de vie. À lire dans le métro, au déjeuner ou avant de dormir 🚀
🧠 Résumé
Internet n'est pas magique. C'est une chaîne de protocoles, dont chacun résout sa propre tâche. Le DNS traduit les noms en adresses, HTTP fournit les données, HTTPS les chiffre, les cookies stockent l'état et les sessions identifient l'utilisateur.
Comprendre ces bases est la première étape pour écrire du code sécurisé et avoir une longueur d'avance. Pas comme un utilisateur ordinaire, mais comme quelqu'un qui sait ce qui se passe sous le capot. 🧠
