Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Requête, réponse et codes HTTP

Après cette leçon: Je peux suivre une page web de la requête du navigateur jusqu’à la réponse du serveur.

Leçon de 45 min3 commandesLab de durcissement d’un serveur web : corriger une configuration nginx faible et la vérifier avec curl

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

MotCe que ça veut direExemple
Clientle programme qui demande une page, comme ton navigateur
Serveurl’ordinateur qui garde le site et répond aux demandes
Requêtela demande envoyée par le clientGET /index.html
Réponsece que le serveur renvoie : un statut, des en-têtes, un contenu
Code de statutun nombre à trois chiffres qui dit si la demande a réussi404
URLl’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

ÉtapeQui parleCe qui est dit
1Le navigateurGET / : donne-moi la page d’accueil
2Le serveurHTTP/1.1 200 OK : tout va bien
3Le serveurContent-Type: text/html : voici une page web
4Le serveurLe 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

Commande
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

Commande
curl -s -o /dev/null -w '%{http_code}\n' http://web/page-inconnue

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 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

CodeNomCe que ça veut dire
200OKLa page est envoyée
301Moved PermanentlyLa page a changé d’adresse pour toujours
403ForbiddenLe serveur refuse de te la montrer
404Not FoundLa page n’existe pas à cette adresse
500Internal Server ErrorLe 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

URLSchémaHôteChemin
https://exemple.fr/menu/midihttpsexemple.fr/menu/midi
http://web/files/httpweb/files/
https://club-foot.fr/httpsclub-foot.fr/

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Lis la page d’accueil du lab

Commande
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.

À propos de ce labo et de sa source: Lab de durcissement d’un serveur web : corriger une configuration nginx faible et la vérifier avec curl

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.