Pourquoi une page affiche « 404 »
Une page web arrive sur ton écran grâce à une question et une réponse. Le protocole HTTP (Hypertext Transfer Protocol) fixe la façon de les écrire.
Tu as déjà vu « 404 » sur un lien cassé. Ce nombre est un code de statut, et il dit exactement ce qui s’est passé. Tu vas apprendre à le lire.
À la fin de cette leçon
Remarque
Je peux suivre une page web de la requête du navigateur jusqu’à la réponse du serveur.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Client | le programme qui demande une page, comme ton navigateur | |
| Serveur | l’ordinateur qui garde le site et répond aux demandes | |
| Requête | la demande envoyée par le client | GET /index.html |
| Réponse | ce que le serveur renvoie : un statut, des en-têtes, un contenu | |
| Code de statut | un nombre à trois chiffres qui dit si la demande a réussi | 404 |
| URL | l’adresse complète d’une page web |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Le navigateur pose une question, le serveur répond
Quand tu ouvres un site, ton navigateur envoie une requête. Elle dit quelle page tu veux, avec une méthode : GET veut dire « donne-moi ».
Le serveur renvoie une réponse. Elle commence par une ligne de statut, par exemple HTTP/1.1 200 OK. Viennent ensuite des en-têtes, puis le contenu de la page.
Exemple travaillé : une requête et sa réponse
| Étape | Qui parle | Ce qui est dit |
|---|---|---|
| 1 | Le navigateur | GET / : donne-moi la page d’accueil |
| 2 | Le serveur | HTTP/1.1 200 OK : tout va bien |
| 3 | Le serveur | Content-Type: text/html : voici une page web |
| 4 | Le serveur | Le texte de la page, que le navigateur affiche |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Demande le statut de la page d’accueil
curl -s -o /dev/null -w '%{http_code}\n' http://web/Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande le statut d’une page qui n’existe pas
curl -s -o /dev/null -w '%{http_code}\n' http://web/page-inconnueAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ce que montrent ces deux Runs
La commande curl joue le rôle d’un navigateur sans écran. Les options -s -o /dev/null cachent la page, et -w écrit seulement le code de statut.
Le site de la boulangerie répond 200 pour la page d’accueil. Pour une page qui n’existe pas, il répond 404.
Le premier chiffre du code dit le résultat
Un code de statut a trois chiffres. Le premier suffit pour comprendre la famille de la réponse.
Les codes en 2 disent que tout va bien. Ceux en 3 envoient ailleurs. Ceux en 4 disent que la demande est fausse. Ceux en 5 disent que le serveur a un problème.
Exemple travaillé : les codes les plus courants
| Code | Nom | Ce que ça veut dire |
|---|---|---|
| 200 | OK | La page est envoyée |
| 301 | Moved Permanently | La page a changé d’adresse pour toujours |
| 403 | Forbidden | Le serveur refuse de te la montrer |
| 404 | Not Found | La page n’existe pas à cette adresse |
| 500 | Internal Server Error | Le serveur a eu une panne en la préparant |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une URL se lit en trois morceaux
Une URL (Uniform Resource Locator) est l’adresse complète d’une page. Elle a trois morceaux.
Le schéma dit comment parler : http ou https. L’hôte dit quel serveur : le nom du site. Le chemin dit quelle page : tout ce qui suit la première barre.
Exemple travaillé : couper une URL
| URL | Schéma | Hôte | Chemin |
|---|---|---|---|
| https://exemple.fr/menu/midi | https | exemple.fr | /menu/midi |
| http://web/files/ | http | web | /files/ |
| https://club-foot.fr/ | https | club-foot.fr | / |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Lis la page d’accueil du lab
curl -s http://web/Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ce que le serveur a renvoyé
Le Run écrit le texte de la page : quatre lignes de HTML. Tu y lis le titre Brightside Bakery et une phrase sur le pain frais.
Le navigateur transforme ce texte en une vraie page. Avec curl, tu vois le texte brut, comme le voit le navigateur avant de l’afficher.
Une erreur fréquente
Attention
Beaucoup pensent qu’un code 404 veut dire que le site est en panne. C’est faux : le serveur a bien répondu, mais la page demandée n’existe pas. Une vraie panne donne un code en 5, ou aucune réponse du tout.
Pour aller plus loin : une redirection
Un code en 3 envoie le client ailleurs, et la réponse porte alors un en-tête Location. Ajoute à ton devoir une fonction doit_suivre(ligne) qui renvoie True pour un code de redirection.
Essaie-la sur HTTP/1.1 301 Moved Permanently et sur HTTP/1.1 200 OK.