Les en-têtes sont trop volumineux.
Quand l’utiliser
Des cookies trop volumineux en sont généralement la cause.
Causes courantes et solutions
Les en-têtes sont trop volumineux, et les cookies en sont presque toujours la cause : des tas de cookies de suivi, une session stockée côté client, ou un JWT avec de nombreux claims conservé dans un cookie. Sur localhost, les cookies de toutes les applications que vous avez lancées s’accumulent, car les cookies ignorent le port. Effacer les cookies du site règle généralement le problème immédiatement, ce qui confirme aussi le diagnostic.
Node.js renvoie 431 quand les en-têtes dépassent 16 Ko, ce qui piège souvent les serveurs de développement comme Vite et Next.js ; --max-http-header-size relève la limite. nginx et Apache répondent au même problème par un 400. La vraie solution, ce sont des en-têtes plus petits : ne gardez qu’un ID de session dans le cookie, restreignez la portée des cookies avec des valeurs Path et Domain étroites, et supprimez les cookies obsolètes.
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 431 Request Header Fields Too LargeComment l’envoyer
| Node.js / Express | res.status(431).end() |
|---|---|
| Python / Flask | return '', 431 |
| nginx | return 431; |
Comment le vérifier
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/