Comment ça marche · module en construction

De l'Entrée à la page

Tu tapes rouages.net et tu appuies sur Entrée. En une seconde environ, des dizaines de machines, d'organisations et de règles entrent en jeu. Suivons la page d'accueil de ce site, depuis ton clavier jusqu'à l'écran.

Choisis ton niveau : tu peux en changer à tout moment.

Étape 0 : Avant même d'appuyer sur Entrée

Quand tu tapes rouages.net, le navigateur reconnaît un nom de domaine (pas d'espace, un point, une extension) et va à https://rouages.net/. Quand tu tapes chat qui dort, il y a des espaces : il lance une recherche.

🟢 Découverte

Pendant que tu tapes, le navigateur devine déjà où tu vas. Il regarde aussi s'il n'a pas gardé une copie récente de la page.

🟡 Curieux

La barre d'adresse sert aussi de barre de recherche. Comme rouages.net ressemble à un nom de domaineNom de domaine — Nom lisible d'un site, comme rouages.net. Il se loue auprès d'un bureau d'enregistrement et doit être traduit en adresse IP par le DNS., le navigateur décide d'y aller au lieu de lancer une recherche. Les navigateurs récents (Chrome, par exemple) essaient d'abord https:// (la version chiffrée, voir l'étape 4) et ne reviennent à http:// qu'en cas d'échec, sauf si le site impose HTTPS.

🔴 Ingénieur

Analyse de l'URL (schéma, hôte, chemin). Si le domaine figure dans la liste HSTS préchargée, ou a déjà envoyé un en-tête Strict-Transport-Security (RFC 6797), le navigateur force HTTPS sans jamais tenter HTTP. Certains navigateurs résolvent le nom, ouvrent une connexion, voire préaffichent la page avant l'appui sur Entrée (prédiction, prerender).

Étape 1 : Le nom devient une adresse

⏱ ~0 à 200 ms
  1. Ton navigateur → Résolveur DNS : « Quelle est l'adresse de rouages.net ? » Ton appareil demande au résolveur de ton fournisseur d’accès.
  2. Résolveur DNS → Serveur racine : « Qui gère .net ? » Les résolveurs récents ne demandent à la racine que ce dont elle a besoin (minimisation, RFC 9156) : elle ne voit que « net. ».
  3. Serveur racine → Résolveur DNS : « Voici les serveurs de .net. » La racine ne connaît pas rouages.net : elle indique seulement à qui demander ensuite.
  4. Résolveur DNS → Registre de .net : « Qui gère rouages.net ? »
  5. Registre de .net → Résolveur DNS : « Voici les serveurs DNS de rouages.net. » Le registre de .net (Verisign) sait quels serveurs font autorité pour le domaine.
  6. Résolveur DNS → Serveurs du domaine : « Quelle est l'adresse de rouages.net ? »
  7. Serveurs du domaine → Résolveur DNS : « 203.0.113.42, valable cinq minutes. » La réponse porte une durée de vie (TTL), choisie par le gestionnaire du domaine (de quelques minutes à plusieurs jours) : le résolveur la garde en mémoire jusque-là.
  8. Résolveur DNS → Ton navigateur : « 203.0.113.42 » Ton navigateur peut maintenant contacter le serveur. Tout cela a pris de quelques dizaines à quelques centaines de millisecondes ; quand la réponse est déjà en mémoire, c’est presque instantané.

🟢 Découverte

Les ordinateurs ne connaissent pas les noms, seulement des numéros : les adresses IPAdresse IP — Numéro qui identifie une machine sur internet, comme une adresse postale. En IPv4 : quatre nombres (ex. 203.0.113.42) ; en IPv6 : une adresse beaucoup plus longue.. Le DNSDNS — Domain Name System : l'annuaire décentralisé d'internet, qui traduit les noms de domaine en adresses IP., c'est l'annuaire d'internet. Mais aucun annuaire ne contient tout : on demande de proche en proche, comme on demanderait son chemin.

🟡 Curieux

Le navigateur regarde d'abord dans sa mémoire (cacheCache — Mémoire où l'on garde une copie de ce qu'on a déjà obtenu (une adresse, une image…) pour ne pas avoir à le redemander.) et dans celle du système, puis demande à un résolveur DNSRésolveur DNS — Serveur (souvent celui de ton fournisseur d'accès) qui cherche pour toi l'adresse correspondant à un nom, en interrogeant les autres serveurs DNS., souvent celui de ton fournisseur d'accèsFournisseur d'accès (FAI) — Entreprise ou association qui te relie à internet, à la maison par la box ou par le réseau mobile.. S'il ne connaît pas la réponse, le résolveur interroge dans l'ordre :

  1. un serveur racineServeur racine — Point de départ du DNS : il sait quels serveurs gèrent chaque extension (.net, .fr…). Il en existe 13 (nommés de a à m), copiés en plus de 2 000 exemplaires (instances) dans le monde. : « voici qui gère .net » ;
  2. le registreRegistre — Organisme qui gère une extension (.net, .fr…) et tient la liste de tous les noms de domaine qui la portent. Exemple : Verisign pour .net, l'Afnic pour .fr. de .net (l'organisme qui gère cette extension) : « voici les serveurs DNS de ce domaine » ;
  3. les serveurs du domaine : « rouages.net, c'est telle adresse ».

Chaque réponse est gardée en mémoire un certain temps (le TTLTTL — Time To Live, « durée de vie ». Dans le DNS : combien de temps une réponse peut être gardée en mémoire. Dans un paquet IP : combien de routeurs il peut encore traverser.). En pratique, le résolveur connaît presque toujours déjà les serveurs de .net et ne repasse que rarement par la racine.

🔴 Ingénieur

Requêtes A, AAAA et HTTPS (RFC 9460), en UDP ou TCP sur le port 53, ou chiffrées : DNS over TLS (port 853), DNS over HTTPS. Résolution itérative par le résolveur ; avec la minimisation de la question (RFC 9156), la racine ne voit que net.. 13 identités racine (a à m.root-servers.net), 12 organisations, plus de 2 000 instances en anycast. DNSSEC authentifie les réponses (signature) mais ne les chiffre pas.

Étape 2 : Ta box et ton réseau local

⏱ ~1 à 10 ms

L'ordinateur (adresse privée 192.168.1.10) envoie un paquet au serveur. La box remplace l'adresse d'expéditeur par son adresse publique (203.0.113.7) et un numéro de port, et note la correspondance dans sa table. Quand la réponse revient, elle consulte sa table et la renvoie à l'ordinateur. En IPv6, chaque appareil a sa propre adresse publique : pas de traduction.

🟢 Découverte

Ton ordinateur ne parle pas directement à internet : il passe par ta boxBox — Boîtier fourni par ton fournisseur d'accès, qui relie les appareils de la maison à internet. Elle se raccorde à la ligne (cuivre ou fibre), sert de routeur et de borne Wi-Fi, et fait souvent du NAT. (ou, sur ton téléphone en 4G ou 5G, par l'antenne-relais de ton opérateur). La box est la porte de la maison.

🟡 Curieux

Chez toi, chaque appareil a une adresse privée (souvent 192.168.x.x). Vu de l'extérieur, toute la maison partage une adresse IPv4 publique, et de plus en plus souvent la partage même avec d'autres abonné·es : c'est le NATNAT — Traduction d'adresses : la box (ou l'opérateur) fait partager une même adresse IP publique à plusieurs appareils en réécrivant les adresses des paquets.. Avec IPv6IPv6 — Version plus récente des adresses IP, assez nombreuses pour donner une adresse à chaque appareil. Elle remplace progressivement IPv4, dont les adresses sont épuisées., activé chez la grande majorité des abonné·es en France, chaque appareil peut avoir sa propre adresse publique.

🔴 Ingénieur

DHCP (attribution d'adresse), ARP ou NDP (trouver l'adresse matérielle de la box), trames Ethernet ou Wi-Fi (IEEE 802.11), NAT avec traduction de ports ; partage d'adresse par l'opérateur (CGNAT, souvent dans 100.64.0.0/10, RFC 6598), sur mobile comme, de plus en plus, sur le fixe.

Étape 3 : Ouvrir la liaison

⏱ ~10 à 100 ms
  1. Navigateur → serveur : SYN (« bonjour, je commence à compter à 1000 »).
  2. Serveur → navigateur : SYN-ACK (« bonjour, moi à 5000 ; j'attends ton 1001 »).
  3. Navigateur → serveur : ACK (« bien reçu »). La connexion est ouverte.
  4. Le serveur envoie la page en 6 morceaux ; ils arrivent dans le désordre et le n° 4 se perd.
  5. Le navigateur range les morceaux et répète « j'ai tout jusqu'au 3, j'attends le 4 ».
  6. Le serveur renvoie le n° 4 ; la page est complète et dans l'ordre.

🟢 Découverte

Avant de parler, on se dit bonjour : ton navigateur et le serveurServeur — Ordinateur allumé en permanence, généralement dans un datacenter, qui répond aux demandes d'autres machines. vérifient qu'ils se reçoivent bien, puis la page peut voyager.

🟡 Curieux

Internet transporte des paquetsPaquet — Petit morceau de données, avec une adresse de départ et d'arrivée. Tout ce qui circule sur internet est découpé en paquets, qui voyagent indépendamment. indépendants, qui peuvent se perdre ou arriver dans le désordre. TCPTCP — Transmission Control Protocol : il numérote les données envoyées, vérifie leur arrivée et renvoie ceux qui se perdent, pour que les données arrivent complètes et dans l'ordre. remet de l'ordre : il numérote, accuse réception, renvoie ce qui manque. Il commence par une poignée de main en trois temps. Quand le serveur le propose, les navigateurs utilisent QUICQUIC — Protocole de transport récent, chiffré, construit sur UDP. Il fait le travail de TCP et de TLS en économisant un aller-retour ; il porte HTTP/3. (HTTP/3), qui économise un aller-retour. Selon son hébergeur, ce site peut t'arriver par TCP (HTTP/2) ou par QUIC (HTTP/3) : regarde la colonne « Protocole » ci-dessous.

🔴 Ingénieur

TCP (RFC 9293) : SYN → SYN-ACK → ACK vers le port 443, numéros de séquence, contrôle de congestion. QUIC (RFC 9000) : transport chiffré sur UDPUDP — Protocole de transport simple, sans accusé de réception ni remise en ordre. Plus léger que TCP ; QUIC est construit par-dessus. qui fusionne l'ouverture de connexion et la poignée de main TLS ; HTTP/3 est annoncé par l'en-tête Alt-Svc ou l'enregistrement DNS HTTPS.

Étape 4 : Le cadenas

⏱ ~10 à 100 ms
  1. Ton navigateur et le serveur se mettent d'accord sur une couleur commune. Elle passe sur le réseau : l'espion la voit.
  2. Chacun choisit une couleur secrète, qu'il garde pour lui. Elle ne voyagera jamais.
  3. Chacun mélange la couleur commune avec sa couleur secrète.
  4. Ils s'échangent leurs mélanges sur le réseau. L'espion les voit passer.
  5. Chacun ajoute sa couleur secrète au mélange reçu : les deux obtiennent la même couleur finale, qui servira de clé.
  6. L'espion, lui, n'a que la couleur commune et les deux mélanges. En les combinant, il n'obtient pas la bonne teinte : il lui manque un secret.
Et en vrai, avec des nombres ?

Les « couleurs » sont des nombres, et le « mélange » est un calcul facile dans un sens, mais très difficile à défaire. Exemple minuscule (les vrais nombres ont des centaines de chiffres) : nombres publics p = 23 et g = 5.

  • Secret du navigateur a = 6 ; il envoie ga mod 23 = 8.
  • Secret du serveur b = 15 ; il envoie gb mod 23 = 19.
  • Le navigateur calcule 196 mod 23 = 2 ; le serveur calcule 815 mod 23 = 2. Même secret.

L'espion voit 23, 5, 8 et 19, mais pour retrouver a ou b il devrait résoudre un « logarithme discret », hors de portée avec de grands nombres. Aujourd'hui, TLS utilise surtout la même idée sur des courbes elliptiques (X25519).

L'analogie des pots de peinture n'est pas de nous : elle circule largement pour expliquer Diffie-Hellman. On la doit notamment au schéma d'A. J. Han Vinck (université de Duisburg-Essen), repris sur Wikimedia Commons, et à la vidéo d'Art of the Problem (en anglais).

🟢 Découverte

Avant d'envoyer quoi que ce soit, on s'assure de parler au bon serveur et on chiffre la conversation (on la brouille avec une clé secrète) pour que personne en chemin ne puisse la lire.

🟡 Curieux

Les deux machines fabriquent d'abord ensemble une clé secrète, sans jamais l'envoyer sur le réseau (Diffie-HellmanDiffie-Hellman — Méthode (1976) qui permet à deux machines de fabriquer une clé secrète commune sans jamais l'envoyer sur le réseau.). Puis le serveur présente, déjà chiffré, son certificatCertificat — Attestation signée par une autorité de certification, qui garantit qu'un serveur a le droit de parler au nom d'un nom de domaine. Il ne garantit pas l'honnêteté du site., qui garantit qu'il a le droit de parler au nom de rouages.net, et il signe l'échange avec la clé secrète qui va avec : un imposteur pourrait copier le certificat, pas cette signature. Le certificat garantit le nom du site, pas l'honnêteté de son propriétaire.

🔴 Ingénieur

TLSTLS — Transport Layer Security : le protocole qui chiffre la connexion et vérifie l'identité du serveur. C'est le « S » de HTTPS et le cadenas du navigateur. 1.3 (RFC 8446) : ClientHello (nom du site en clair dans le SNI, sauf si le site gère ECH, RFC 9849 ; part de clé), ServerHello, puis chiffrés : EncryptedExtensions, Certificate, CertificateVerify, Finished. Échange de clés souvent X25519, de plus en plus hybride post-quantique (X25519MLKEM768). Certificats journalisés (Certificate Transparency, RFC 6962), consultables sur crt.sh. Sur cPanel, AutoSSL délivre par défaut des certificats Let's Encrypt de courte durée (90 jours aujourd'hui), renouvelés automatiquement.

Étape 5 : Le voyage des paquets

⏱ ~5 à 150 ms

Sans coupure, le paquet quitte ton ordinateur avec un TTL de 64 (le nombre de routeurs qu'il a encore le droit de traverser ; la valeur de départ dépend du système, 64 est fréquent), passe par ta box, par le routeur de ton fournisseur d'accès à Lyon, par le point d'échange de Paris, entre chez l'hébergeur et arrive au serveur. Chaque routeur traversé, box comprise, baisse son TTL de 1 ; le point d'échange, lui, est un grand commutateur qui ne compte pas comme un saut. Le paquet arrive avec un TTL de 61. Si le lien Lyon – Paris est coupé, les routeurs trouvent une autre route, par exemple par Marseille et un opérateur de transit.

Si le serveur est à New York, le paquet traverse l'Atlantique par un câble sous-marin. Même à la vitesse de la lumière dans la fibre (environ 204 000 km/s), les quelque 5 800 km en ligne droite demandent au moins 29 ms à l'aller et 57 ms pour l'aller-retour.

🟢 Découverte

Ta demande voyage en petits morceaux, les paquetsPaquet — Petit morceau de données, avec une adresse de départ et d'arrivée. Tout ce qui circule sur internet est découpé en paquets, qui voyagent indépendamment.. Ils sautent de routeurRouteur — Machine qui reçoit des paquets et choisit vers quel voisin les envoyer pour les rapprocher de leur destination. en routeur, comme une lettre qui passe de centre de tri en centre de tri. Personne ne connaît tout le chemin : chaque routeur sait seulement où envoyer ensuite.

🟡 Curieux

Depuis ta box, les paquets entrent chez ton fournisseur d'accès, puis passent d'un réseau à l'autre, soit dans des points d'échangePoint d'échange — Lieu (souvent dans un datacenter) où de nombreux réseaux se raccordent pour échanger directement leur trafic. Exemple en France : France-IX. (France-IX à Paris, Marseille, Lyon…), soit par des liaisons directes. Si le serveur est sur un autre continent, ils empruntent un câble sous-marinCâble sous-marin — Câble à fibres optiques posé au fond des mers. L'immense majorité du trafic intercontinental passe par ces câbles, pas par satellite.. Chaque réseau annonce aux autres les adresses qu'il sait atteindre : c'est BGPBGP — Border Gateway Protocol : le protocole par lequel les grands réseaux s'annoncent mutuellement quelles adresses ils savent atteindre. Il « tient » internet ensemble., le protocole qui tient internet ensemble. Ce voyage n'a pas lieu une seule fois : chaque aller-retour des étapes 1, 3, 4 et 6 le refait, c'est pourquoi la distance du serveur compte autant.

🔴 Ingénieur

Routage IP saut par saut ; TTL (IPv4) ou Hop Limit (IPv6) décrémenté à chaque routeur, avec un message ICMP Time Exceeded à zéro (ce qu'exploite traceroute). Systèmes autonomes et BGP-4 (RFC 4271), peering et transit. La RPKI vérifie l'origine d'une annonce, pas tout le chemin. Adresses distribuées par l'IANA à cinq registres régionaux (RIPE NCC, AFRINIC, APNIC, ARIN, LACNIC).

Étape 6 : Le serveur répond

⏱ ~1 à 50 ms

Un même serveur héberge plusieurs sites, chacun dans son dossier. Quand la requête demande :authority: rouages.net et :path: /, Apache ouvre le dossier de rouages.net, trouve index.html et répond 200. Si la page n'existe pas dans ce dossier, il répond 404.

🟢 Découverte

Le serveurServeur — Ordinateur allumé en permanence, généralement dans un datacenter, qui répond aux demandes d'autres machines. est un ordinateur allumé en permanence dans un datacenterDatacenter — Bâtiment rempli de serveurs, avec de quoi les alimenter en électricité, les refroidir et les relier à internet. On dit aussi « centre de données ».. Il reçoit ta demande, trouve le bon fichier et te l'envoie.

🟡 Curieux

Le navigateur envoie une requête HTTPHTTP — HyperText Transfer Protocol : la langue dans laquelle le navigateur demande une page (« GET / ») et le serveur répond (« 200 OK »). : « donne-moi la page d'accueil de rouages.net ». Chez l'hébergeurHébergeur — Entreprise qui loue de la place sur ses serveurs pour faire fonctionner des sites. Un même serveur peut héberger de nombreux sites., un même serveur héberge de nombreux sites : il regarde le nom demandé pour savoir lequel servir. Le logiciel Apache applique les règles du site (forcer HTTPS, compresser), trouve index.html et le renvoie avec le codeCode HTTP — Nombre à trois chiffres dans la réponse du serveur : 200 (tout va bien), 404 (introuvable), 500 (erreur du serveur), 503 (service indisponible)… 200 : « tout va bien ». Ce site est statique : la page a été fabriquée à l'avance.

🔴 Ingénieur

En HTTP/2, pas de ligne GET / HTTP/1.1 mais des pseudo-en-têtes :method, :path, :scheme, :authority. Hôtes virtuels Apache choisis selon le SNI et l'hôte demandé. Réponse 200 avec content-type, content-encoding: gzip, cache-control.

Étape 7 : Le retour, et tout ce qui manque encore

⏱ ~10 à 500 ms

Une page web médiane fait 71 requêtes sur ordinateur (66 sur mobile), et 92 % des pages font appel à au moins un service tiers (Web Almanac 2024). Cette page-ci ne contacte que son propre serveur : aucun service tiers.

🟢 Découverte

La page arrive… mais ce n'est qu'un plan. Pour la dessiner, le navigateur doit aller chercher le reste : les styles (couleurs, mise en page), les images, les scripts (de petits programmes).

🟡 Curieux

En lisant le HTML, le navigateur découvre d'autres fichiers à demander (CSSCSS — Le langage qui décrit l'apparence d'une page : couleurs, polices, mise en page., images, polices, scripts), sur la même connexion, en parallèle. Ce qu'il a déjà en cache n'est pas redemandé. Sur beaucoup de sites, ces fichiers viennent aussi d'autres serveurs : publicité, statistiques, réseaux sociaux. Ce site n'en utilise aucun.

🔴 Ingénieur

Multiplexage HTTP/2 ; fichiers versionnés /_astro/… mis en cache un an (immutable) ; ressources qui bloquent le rendu ; requêtes tierces.

Étape 8 : L'affichage

⏱ ~10 à 200 ms
  1. Le navigateur lit le HTML et construit un arbre d'éléments : le DOM.
  2. Il lit le CSS et calcule le style de chaque élément.
  3. Il calcule la place et la taille de chaque boîte : la mise en page.
  4. Il remplit les pixels : la peinture.
  5. Il assemble les calques, souvent avec la carte graphique : la composition.

🟢 Découverte

Le navigateur assemble les pièces comme un puzzle : il lit le plan, applique le style, place chaque élément, puis peint l'écran.

🟡 Curieux

Le HTML devient un arbre d'éléments (le DOMDOM — Document Object Model : l'arbre d'éléments que le navigateur construit à partir du HTML, et que les scripts peuvent modifier.), le CSS dit à quoi chacun ressemble, le navigateur calcule la place de chaque bloc, puis dessine les pixels. Les scripts peuvent ensuite modifier la page.

🔴 Ingénieur

HTML → DOM ; CSS → CSSOM ; arbre de rendu ; layout ; paint ; composition (souvent sur la carte graphique). Mesures : First Contentful Paint, Largest Contentful Paint (Google recommande un LCP de 2,5 s au plus pour 75 % des visites).

Et si ça ne marche pas ?

Chaque message d'erreur correspond à une étape que tu connais maintenant.

MessageÉtape en cause
« Ce site est inaccessible », DNS_PROBE_FINISHED_NXDOMAIN1 — Le nom
Pas de Wi-Fi, pas d'internet2 — La box
« La connexion a expiré »3 — La liaison ou 5 — Le voyage
« Votre connexion n'est pas privée »4 — Le cadenas
Erreur 4046 — Le serveur ne trouve pas la page
Erreur 5006 — Erreur interne du serveur
Erreur 5036 — Service indisponible (surcharge ou maintenance)

Les durées indiquées sont des ordres de grandeur, qui varient selon ta connexion et la distance du serveur.