400 Bad Request

La requête est mal formée ou invalide.

Quand l’utiliser

JSON impossible à analyser, champs obligatoires manquants, types incorrects.

Causes courantes et solutions

Causes courantes : du JSON mal formé, comme une virgule finale ou des chaînes entre apostrophes, un corps qui ne correspond pas au Content-Type déclaré, des champs obligatoires manquants ou des paramètres d’URL invalides. Avant d’accuser le serveur, examinez les octets exacts envoyés, avec curl -v ou le payload de la requête dans l’onglet Réseau des DevTools. La plupart des API expliquent le problème dans le corps de la réponse : lisez-le.

L’infrastructure produit aussi des 400 : nginx renvoie « Request Header Or Cookie Too Large » quand les cookies dépassent large_client_header_buffers, et « The plain HTTP request was sent to HTTPS port » quand vous utilisez http:// sur le port 443. Les répartiteurs de charge rejettent les en-têtes ou les valeurs Host mal formés. Effacer les cookies du site résout beaucoup de 400 qui n’apparaissent que dans le navigateur. Sur votre propre serveur, réservez 400 aux entrées impossibles à parser et utilisez 422 pour les échecs de validation.

Erreur client (4xx)

Les codes 4xx sont des erreurs client : la requête elle-même est incorrecte, non autorisée ou vise quelque chose qui n’existe pas. Renvoyer la même requête ne servira à rien.

À quoi ça ressemble

HTTP/1.1 400 Bad Request

Comment l’envoyer

Node.js / Expressres.status(400).end()
Python / Flaskreturn '', 400
nginxreturn 400;

Comment le vérifier

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Ouvrir l’outil Codes de statut HTTP