Anatomie d'une requête HTTP : méthodes, GET vs POST
9 min · Débutant · 7 août 2026
Ce que contient réellement une requête
Une requête HTTP, malgré son nom technique, est simplement du texte structuré, envoyé du client vers le serveur :
GET /fr/cours/cybersecurite/injections-sql/ HTTP/1.1
Host: cybercursus.fr
User-Agent: Mozilla/5.0
Accept: text/html Quatre éléments la composent :
- La méthode (
GET) : l’action demandée. - Le chemin (
/fr/cours/.../) : la ressource visée. - Les en-têtes (
Host,User-Agent,Accept, etc.) : des métadonnées sur la requête (détaillées au chapitre suivant). - Un corps optionnel : des données envoyées au serveur, absent ici, présent dans une requête
POSTtypique.
GET : demander sans modifier
GET est la méthode par défaut d’un navigateur : cliquer sur un lien, taper une adresse, tout ça déclenche une requête GET. Elle est conçue pour être sûre (elle ne devrait provoquer aucun effet de bord côté serveur) et ses paramètres, s’il y en a, apparaissent directement dans l’URL :
GET /recherche?q=injection+sql HTTP/1.1 POST : envoyer des données qui changent quelque chose
POST sert à transmettre des données destinées à provoquer un changement : créer un compte, publier un commentaire, se connecter. Ces données voyagent dans le corps de la requête, pas dans l’URL :
POST /connexion HTTP/1.1
Host: exemple.test
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
identifiant=ALICE&mot_de_passe=xxx Attention
Utiliser POST au lieu de GET ne rend pas une donnée « sécurisée » : le corps d’une requête POST n’est ni chiffré ni caché par la méthode elle-même (seul HTTPS chiffre le trafic, voir le dernier chapitre de ce cours). La différence est une question d’exposition et de sémantique, pas de confidentialité.
Repérer où une donnée utilisateur peut se cacher
Le chapitre 1 du cours sur les injections SQL listait les points d’entrée typiques d’une application (champs de formulaire, paramètres d’URL, en-têtes HTTP). Avec la structure d’une requête maintenant posée, ces points d’entrée correspondent précisément aux éléments vus ici : le chemin et sa chaîne de requête pour un GET, le corps pour un POST, et les en-têtes dans les deux cas.