Erreur 400 Bad Request : signification et solutions

Point clé

Une erreur 400 Bad Request signifie que le serveur a bien reçu votre requête mais a refusé de la traiter, parce qu'un élément semblait mal formé : une URL cassée, des cookies ou des en-têtes trop volumineux ou corrompus, ou des données invalides envoyées à une API. En tant que visiteur, vérifiez que l'URL ne contient pas de caractères parasites, puis effacez les cookies de ce seul site et essayez une fenêtre de navigation privée. En tant que propriétaire du site, lisez la page d'erreur et les logs : « Request Header Or Cookie Too Large » signifie qu'une ligne d'en-tête, ou tous les en-têtes ensemble, ne tient pas dans les tampons de nginx (8 Ko par ligne par défaut) : réduisez les cookies ou relevez la limite ; « The plain HTTP request was sent to HTTPS port » signifie que quelque chose parle HTTP à un port TLS.

Vérifiez maintenant

Page nginx 400 Bad Request: Request Header Or Cookie Too Large avec les solutions à essayer dans l'ordre
Page nginx 400 Bad Request: Request Header Or Cookie Too Large avec les solutions à essayer dans l'ordre
Commencer la lecture
  1. Qu'est-ce que l'erreur 400 Bad Request ?
  2. À quoi ressemble une erreur 400
  3. Quelles sont les causes d'une erreur 400 Bad Request ?
  4. Solution 1 : vérifiez l'URL
  5. Solution 2 : effacez les cookies de ce seul site
  6. Solution 3 : essayez la navigation privée, puis videz le cache
  7. Solution 4 : désactivez les extensions et vérifiez la taille des fichiers
  8. Pour les propriétaires de sites : trouver la cause des erreurs 400
  9. « Request Header Or Cookie Too Large »
  10. « The plain HTTP request was sent to HTTPS port »
  11. Erreurs 400 renvoyées par les API
  12. 400 vs 401, 403, 404, 413, 429 et 431
  13. Questions fréquemment posées

Qu'est-ce que l'erreur 400 Bad Request ?

400 Bad Request est un code de statut HTTP qui signifie que le serveur a reçu votre requête mais refuse de la traiter parce que quelque chose dans la requête elle-même semble incorrect. La norme HTTP la définit comme l'incapacité ou le refus du serveur de traiter une requête « en raison de quelque chose perçu comme une erreur du client (par ex. une syntaxe de requête mal formée, un cadrage de message de requête invalide ou un routage de requête trompeur) » (RFC 9110 §15.5.1).

Contrairement à une erreur 500, qui signifie que le serveur a planté, une erreur 400 désigne la requête : l'URL, les en-têtes, les cookies ou les données envoyés par votre navigateur ou votre application. Pour tous les autres visiteurs, le site fonctionne généralement très bien.

C'est une bonne nouvelle pour les visiteurs, car la solution se trouve souvent de votre côté et prend une minute : un lien mal saisi ou abîmé, ou des cookies devenus trop volumineux pour le serveur.

Voir le code de statut et les en-têtes renvoyés par une page

À quoi ressemble une erreur 400

Le message dépend du logiciel serveur, et le texte complémentaire est souvent le meilleur indice de la cause :

ServeurCe qu'affiche la pageCause habituelle
nginx400 Bad Request: Request Header Or Cookie Too LargeCookies ou en-têtes au-delà de la limite de nginx
nginx400 Bad Request: The plain HTTP request was sent to HTTPS portHTTP envoyé à un port qui attend du HTTPS
ApacheBad Request: Your browser sent a request that this server could not understand. (Pour un en-tête trop volumineux, il ajoute : Size of a request header field exceeds server limit.)Requête mal formée ou champ d'en-tête trop volumineux
IIS (HTTP.sys)Bad Request - Invalid URL. HTTP Error 400. The request URL is invalid.Caractères interdits ou mal encodés dans l'URL
IIS (HTTP.sys)Bad Request - Request Too Long. The size of the request headers is too long.Cookies trop nombreux ou trop volumineux
Google400. That's an error. Your client has issued a malformed or illegal request.URL ou requête mal formée (des cookies trop volumineux donnent plutôt une page 413)

Quelles sont les causes d'une erreur 400 Bad Request ?

  • Une URL mal formée. Un signe % égaré, une espace, un caractère qui aurait dû être encodé, ou un lien tronqué ou collé deux fois.
  • Des cookies corrompus ou trop volumineux. Les sites qui déposent de nombreux cookies (connexions, tests A/B, statistiques) peuvent faire dépasser à l'en-tête Cookie la limite du serveur. Un cookie endommagé lors d'une mise à jour peut aussi être rejeté.
  • Des en-têtes de requête trop volumineux. En plus des cookies, les longs jetons d'authentification ou les en-têtes ajoutés par des extensions et des proxys s'additionnent.
  • Des données invalides envoyées à une API. Champs obligatoires manquants, JSON mal formé ou mauvais en-tête Content-Type.
  • Du HTTP envoyé à un port HTTPS. Fréquent derrière les répartiteurs de charge et les reverse proxies.
  • Un fichier trop volumineux. Beaucoup de serveurs répondent 413 Content Too Large, mais certaines applications et frameworks renvoient 400 à la place.

Solution 1 : vérifiez l'URL

Examinez attentivement la barre d'adresse. Problèmes à repérer :

  • Un % qui n'est pas suivi de deux caractères hexadécimaux (%20 est correct, %2 ou %zz ne l'est pas).
  • Des espaces, { }, |, \ ou d'autres caractères inhabituels, surtout dans les liens copiés depuis un e-mail, un PDF ou une messagerie.
  • Un lien collé deux fois (https://example.com/https://example.com/...) ou coupé en cours de route.
  • Une URL très longue avec des paramètres de suivi. Supprimez tout à partir du ? et réessayez.

Si vous avez suivi un lien depuis un autre site, allez plutôt sur la page d'accueil du site et naviguez jusqu'à la page depuis celle-ci.

Solution 2 : effacez les cookies de ce seul site

C'est la solution pour les messages qui parlent de cookies ou d'en-têtes « too large » ou « too long », et elle vaut la peine d'être essayée pour toute erreur 400 sur un site que vous avez déjà visité. Inutile d'effacer les cookies de tous les sites, seulement ceux de celui-ci :

  • Chrome : cliquez sur Afficher des informations à propos du site à gauche de la barre d'adresse → Cookies et données des sites → Gérer les données des sites sur l'appareil → supprimez les données du site, puis rechargez la page.
  • Edge : Paramètres et plus → Paramètres → Confidentialité, recherche et services → Cookies → Afficher tous les cookies et les données du site → recherchez le site → supprimez-le.
  • Firefox : cliquez sur le cadenas → Effacer les cookies et les données de site…
  • Safari (Mac) : Safari → Réglages → Confidentialité → Gérer les données de sites web… → recherchez le site → Supprimer.
  • iPhone : Réglages → Apps → Safari → Avancé → Données de sites web → balayez le site vers la gauche pour le supprimer.

Solution 3 : essayez la navigation privée, puis videz le cache

Ouvrez la page dans une fenêtre de navigation privée (Ctrl + Maj + N dans Chrome et Edge, Ctrl + Maj + P dans Firefox, Cmd + Maj + N dans Safari). Les fenêtres privées démarrent sans cookies, sans fichiers en cache et généralement sans extensions : si la page y fonctionne, la solution 2, la solution 4 ou la suppression des fichiers en cache (Ctrl + Maj + Suppr → Images et fichiers en cache) réglera le problème durablement.

Si la navigation privée échoue aussi, vos cookies, votre cache et vos extensions ne sont pas en cause : vérifiez de nouveau l'URL, désactivez tout VPN ou proxy et, en dernier recours, videz votre cache DNS. Le DNS est rarement la cause d'une erreur 400, mais après un changement de serveur d'un site, une adresse obsolète peut vous envoyer vers un serveur qui rejette votre requête.

Solution 4 : désactivez les extensions et vérifiez la taille des fichiers

Les extensions qui modifient les requêtes, comme les outils de confidentialité, les éditeurs d'en-têtes, les chercheurs de codes promo et certains bloqueurs de publicités, peuvent ajouter ou modifier des en-têtes d'une manière que le serveur rejette. Désactivez-les toutes, rechargez la page, puis réactivez-les une par une pour trouver la coupable.

Si l'erreur apparaît lors d'un envoi de fichier, essayez un fichier plus petit. Compressez les images ou découpez les gros fichiers. Cela vous indique si le serveur rejette la taille, même s'il la signale par une erreur 400 au lieu d'une 413.

Pour les propriétaires de sites : trouver la cause des erreurs 400

Si des utilisateurs signalent des erreurs 400 sur votre site, partez du message exact qu'ils voient et de vos logs serveur. nginx journalise la raison au niveau info ; Apache journalise les en-têtes trop volumineux au niveau info, mais les URL et en-têtes mal formés seulement au niveau debug. Relevez donc temporairement le niveau du log d'erreurs si vous ne la voyez pas (error_log … info; dans nginx, LogLevel debug dans Apache). Le log d'accès indique quelles URL renvoient 400. Le Vérificateur d'en-têtes HTTP de DNS Robot affiche le code de statut, le logiciel serveur et chaque cookie posé lors d'une première visite, avec sa taille ; les cookies ajoutés plus tard par des scripts, comme ceux d'analytique, n'apparaissent que dans les DevTools de votre navigateur (Application → Cookies).

bash
# Quelles requêtes reçoivent un 400 ? (format de log nginx combined)
sudo awk '$9 == 400 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

# Les raisons journalisées par nginx (nécessite error_log ... info;)
sudo grep -i "client sent\|too large\|bad request" /var/log/nginx/error.log | tail -20

nginx lit les en-têtes de requête dans des tampons définis par large_client_header_buffers, par défaut 4 tampons de 8 Ko. Un champ d'en-tête qui ne tient pas dans un tampon, généralement l'en-tête Cookie, déclenche cette erreur 400, tout comme des en-têtes qui exigent plus que les 4 tampons réunis (environ 32 Ko) ; une ligne de requête (l'URL) trop longue donne en revanche une erreur 414 (nginx). La limite équivalente d'Apache est LimitRequestFieldSize, 8 190 octets par défaut (Apache).

Nous l'avons testé sur nginx.org lui-même (nginx 1.31.3) le 27 octobre 2026 : une requête avec un cookie de 7 000 octets a reçu la page normale, et une requête avec un cookie de 9 000 octets a reçu exactement ceci :

html
<html>
<head><title>400 Request Header Or Cookie Too Large</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>Request Header Or Cookie Too Large</center>
<hr><center>nginx/1.31.3</center>
</body>
</html>

La bonne solution consiste à envoyer moins : supprimez les cookies dont vous n'avez plus besoin, gardez des cookies de session légers et limitez les cookies aux chemins et sous-domaines qui les utilisent. Si vous avez vraiment besoin d'en-têtes plus volumineux, par exemple pour de gros jetons d'authentification unique (SSO), relevez la limite :

nginx
# nginx : bloc http ou serveur par défaut (les autres blocs server peuvent être ignorés)
large_client_header_buffers 4 16k;

# Équivalent Apache : configuration principale ou premier hôte virtuel déclaré
# LimitRequestFieldSize 16380

« The plain HTTP request was sent to HTTPS port »

nginx renvoie cette erreur 400 quand quelque chose envoie du HTTP en clair à un port sur lequel nginx attend du TLS, généralement le 443 ; curl http://nginx.org:443/ affiche la page. Les causes typiques sont un répartiteur de charge ou un proxy qui transfère du trafic http:// vers le port 443, un lien du type http://example.com:443 ou, sur nginx antérieur à 1.25.1, une ligne ssl on; dans un bloc server qui écoute aussi sur le port 80 (la 1.25.1 a supprimé la directive et un nginx plus récent refuse de démarrer avec ; utilisez listen 443 ssl;).

Vérifiez que chaque ligne listen correspond à ce qui arrive dessus : listen 443 ssl; pour le HTTPS et listen 80; pour le HTTP en clair, avec une redirection du 80 vers le 443. Assurez-vous aussi que le proxy placé devant parle HTTPS au port 443 (ou HTTP au port 80).

Erreurs 400 renvoyées par les API

Les API utilisent le code 400 pour les requêtes qui échouent à la validation. Si vous appelez une API, lisez le corps de la réponse, car la plupart des API indiquent quel champ est incorrect. Vérifiez ensuite que vous envoyez un JSON valide, le bon en-tête Content-Type: application/json et tous les paramètres obligatoires.

Si vous développez une API, renvoyez un corps qui nomme le problème (par exemple {"error": "email is required"}), et envisagez 422 Unprocessable Content pour les requêtes bien formées mais sémantiquement invalides, en réservant 400 aux requêtes impossibles à analyser.

400 vs 401, 403, 404, 413, 429 et 431

CodeNomSignification
400Bad RequestLa requête est mal formée ou invalide
401UnauthorizedVous devez vous connecter ou envoyer des identifiants valides
403ForbiddenLe serveur vous a compris mais refuse l'accès
404Not FoundRien n'existe à cette URL
413Content Too LargeLe fichier envoyé ou le corps de la requête est trop volumineux
429Too Many RequestsVous avez atteint une limite de débit
431Request Header Fields Too LargeLes en-têtes, généralement les cookies, sont trop volumineux (Node.js, par exemple, répond 431 là où nginx répond 400)

Nos guides sur les codes voisins : 403 Forbidden, 401 Unauthorized et 429 Too Many Requests. Pour les redirections qui tournent en boucle au lieu d'échouer, consultez ERR_TOO_MANY_REDIRECTS, et le Vérificateur de redirections affiche chaque étape.

Voyez exactement ce que renvoie une page

Le vérificateur d'en-têtes HTTP de DNS Robot affiche le code de statut, le logiciel serveur et chaque cookie posé par un site pour n'importe quelle URL : vous voyez si une page renvoie 400 pour tout le monde ou seulement dans votre navigateur.

Sources

  1. RFC 9110 §15.5.1: 400 Bad Request, IETF
  2. large_client_header_buffers, nginx
  3. LimitRequestFieldSize, Apache HTTP Server
  4. How HTTP status codes affect Google's crawlers, Google

Questions fréquemment posées

Que signifie l'erreur 400 Bad Request ?

Elle signifie que le serveur a reçu votre requête mais a refusé de la traiter parce qu'un élément semblait mal formé ou invalide : une URL cassée, des cookies trop volumineux ou corrompus, des en-têtes trop gros, ou des données invalides envoyées à une API.

Une erreur 400 Bad Request est-elle de ma faute ?

En général, la cause se trouve dans la requête envoyée par votre navigateur, donc la solution est souvent de votre côté : vérifiez l'URL, effacez les cookies du site et essayez la navigation privée. Mais un serveur peut aussi rejeter des requêtes valides si ses limites sont trop basses : si rien ne fonctionne, contactez le site.

Comment corriger l'erreur 400 Bad Request dans Chrome ?

Vérifiez que l'URL ne contient pas de caractères parasites, ouvrez la page dans une fenêtre de navigation privée, puis supprimez les cookies du site : Afficher des informations à propos du site à gauche de la barre d'adresse → Cookies et données des sites → Gérer les données des sites sur l'appareil. Si l'erreur persiste, videz les fichiers en cache et désactivez les extensions une par une.

Que signifie Request Header Or Cookie Too Large ?

Le navigateur a envoyé un cookie ou un autre en-tête plus gros que ce que le serveur autorise : sur nginx, par défaut, un seul en-tête de plus de 8 Ko, ou l'ensemble des en-têtes au-delà d'environ 32 Ko. En tant que visiteur, effacez les cookies de ce site. En tant que propriétaire du site, réduisez le nombre et la taille des cookies, ou relevez large_client_header_buffers dans nginx (4 × 8 Ko par défaut) ou LimitRequestFieldSize dans Apache.

Que signifie The plain HTTP request was sent to HTTPS port ?

nginx a reçu du HTTP en clair sur un port configuré pour le HTTPS. Utilisez https:// dans l'URL ou, si vous gérez le site, vérifiez que vos directives listen et tout répartiteur de charge ou proxy envoient le trafic HTTPS au port 443 et le trafic HTTP au port 80.

Un VPN ou le DNS peuvent-ils provoquer une erreur 400 ?

Rarement. Un proxy ou un logiciel de sécurité qui réécrit les requêtes le peut, et après un changement de serveur d'un site, une entrée DNS périmée peut vous envoyer vers un serveur qui rejette la requête. Déconnecter le VPN et vider le DNS valent la peine d'être essayés après les solutions URL, cookies et cache.

Quelle est la différence entre une erreur 400 et une erreur 404 ?

400 signifie que la requête elle-même est mal formée, donc le serveur refuse de la traiter. 404 signifie que la requête était correcte, mais que rien n'existe à cette adresse.

Une erreur 400 affecte-t-elle le SEO ?

Google traite les réponses 4xx autres que 429 comme un contenu inexistant : une URL qui renvoie sans cesse 400 disparaît donc des résultats de recherche. Les erreurs 4xx ne ralentissent pas l'exploration du reste du site par Googlebot. Corrigez les erreurs 400 sur les pages que vous voulez voir indexées.

Pourquoi ai-je une erreur 400 Bad Request en envoyant un fichier ?

Le fichier dépasse probablement la taille acceptée par le serveur ou l'application, qui signale le problème par une erreur 400 au lieu d'une 413. Essayez un fichier plus petit ou compressé, ou renseignez-vous auprès du site sur sa limite d'envoi.

À propos de l’auteur

Shaik Vahid

Fondateur de DNS Robot. Vahid a passé des années au support d’hébergement web à réparer les domaines, les enregistrements DNS, les certificats SSL et la distribution des e-mails de clients. Il développe les outils de DNS Robot et écrit ces guides à partir des erreurs que les gens rencontrent vraiment.

Vérificateur d'en-têtes HTTP

Analysez les en-têtes de réponse HTTP et la notation des en-têtes de sécurité