Kodokon kodokon.com

HTTP en clair : méthodes et codes de statut

Lisez une vraie requête et une vraie réponse, et apprenez ce que veulent dire 200, 404 et 500.

8 min · 3 questions

Ouvrir cette leçon dans Kodokon

HTTP (HyperText Transfer Protocol) est la langue que le navigateur et le serveur parlent entre eux. Bonne nouvelle : ce n'est pas du binaire incompréhensible, c'est du texte lisible. Une requête tient en quelques lignes : un verbe, une adresse, puis des en-têtes qui précisent le contexte (quelle langue je préfère, quel navigateur j'utilise). La réponse suit le même format : un code chiffré, des en-têtes, une ligne vide, puis le contenu.

BASH
curl -i https://example.com

HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400

<!doctype html>
<html>
...
L'option -i demande à curl d'afficher aussi les en-têtes de la réponse, pas seulement le contenu.

Le verbe placé au début d'une requête s'appelle une méthode, et il annonce votre intention. GET demande simplement à lire une ressource : c'est ce que fait le navigateur chaque fois que vous ouvrez une page. POST envoie des données au serveur, typiquement quand vous validez un formulaire d'inscription. PUT met à jour un élément existant, et DELETE demande sa suppression. Retenez surtout les deux premières : elles représentent l'écrasante majorité du trafic.

BASH
curl -X POST -d "prenom=Sarah&age=30" https://httpbin.org/post
Une requête POST : -d fournit les données envoyées, comme le ferait un formulaire.

Chaque réponse commence par un code de statut à trois chiffres. Le premier chiffre suffit à comprendre la situation. Les codes en 2xx annoncent une réussite : 200 veut dire « voici ce que tu as demandé ». Les 3xx sont des redirections : 301 signifie « cette page a déménagé, va plutôt là-bas ». Les 4xx désignent une erreur du client : 404 (ressource introuvable), 403 (accès interdit), 401 (il faut vous authentifier). Les 5xx désignent une panne du serveur : 500 est l'erreur interne classique.

BASH
curl -I https://example.com/cette-page-nexiste-pas

HTTP/2 404
content-type: text/html; charset=UTF-8
L'option -I (I majuscule) ne demande que les en-têtes : parfait pour vérifier un code de statut.

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Que signifie un code de statut 404 ?
    • Le serveur est tombé en panne
    • La ressource demandée est introuvable à cette adresse
    • La demande a réussi
  2. Quelle famille de codes signale un problème du côté du serveur ?
    • Les 2xx
    • Les 3xx
    • Les 4xx
    • Les 5xx
  3. Quelle méthode HTTP le navigateur utilise-t-il pour simplement lire une page ?
    • GET
    • POST
    • DELETE