Cet article vous a plu?
0
Cet article vous a plu?
0

HTTP 400 : Bad Request en clair

Si vous naviguez sur le Web tous les jours, tout ne fonctionne pas toujours comme prévu. De temps en temps, votre navigateur affiche un code d’état au lieu du contenu souhaité. Lors de la communication entre le serveur Web et le client, c’est-à-dire votre navigateur, des messages d’état sont transmis, mais uniquement en cas de problèmes. La fenêtre de votre navigateur Internet affiche alors un message d’erreur plus ou moins cryptique. L’affichage du code http 400 indique que quelque chose s’est mal passé avec la demande de votre client. Nous vous expliquons en détail ce que signifie ce message d’erreur et nous vous donnons des conseils sur la façon dont résoudre le problème.

Que signifie le message Bad Request 400 Error?

Avec le code de statut, le serveur Web renvoie l’état des requêtes au client. Si le serveur renvoie le message 200 (ce que vous ne voyez normalement pas lors de la navigation), tout va bien. La requête  a été réussie et le contenu désiré a été transmis. Ceci est différent avec les codes des zones 400 et 500 qui servent à indiquer des erreurs de différentes sortes.

Tous les codes des zones 100 et 200 servent à confirmer la réussite de différents processus. En général, peu d’utilisateurs voient ce type de messages, comme ceux de la zone 300 : la transmission est réussie, mais le client doit effectuer une nouvelle opération. Il s’agit pour la plupart de redirections, que le navigateur exécute automatiquement et que vous ne remarquez que dans peu de cas en tant qu’utilisateur.

Ceci est tout à fait différent avec les messages d’erreur : le groupe d’erreurs en 500 est lié à des erreurs du côté du serveur, tandis que la zone d’erreurs en 400 indique une requête défectueuse du client. Le message d’erreur le plus populaire est sans aucun doute l’erreur 404 : not found. La cause de cette erreur est habituellement une URL ou un contenu supprimé à tort.

Avec une erreur 400, il est difficile de déterminer ce qui s’est mal passé. Dans une certaine forme, la demande elle-même est défectueuse. Le protocole HTTP, du moins selon l’opinion du serveur Web, n’a pas été respecté correctement, c’est pourquoi la requête ne peut pas être modifiée. Le serveur a interprété la requête comme défectueuse ou même nocive. Par conséquent, il a empêché le chargement du site. Les raisons du message d’erreur sont souvent liées avec le navigateur Web utilisé ou sont dues à une erreur de la part de l’utilisateur :

  • Mauvaise URL : tout comme l’erreur 404, une erreur Bad Request est générée lorsque les utilisateurs entrent de façon incorrecte l’adresse Internet et, par exemple, insèrent des caractères spéciaux non admis.  
  • Cookies incorrects : si les cookies de votre navigateur sont obsolètes ou incorrects, une erreur 400 peut également se produire.
  • Entrées DNS périmées : des données renvoyant à de mauvaises adresses IP se trouvent dans votre cache DNS.
  • Fichiers trop volumineux : si vous essayez de télécharger des fichiers particulièrement volumineux, le serveur peut refuser de les accepter. Ils seront aussi évalués par le serveur en tant que Bad Request.
  • Lignes d’en-tête trop longues : le client et le serveur utilisent des en-têtes pour leurs communications, dans lesquelles est définie la requête. Certains serveurs Web définissent une limite maximale pour la longueur de ces en-têtes.

Le message d’erreur « TTTP 400 Bad Request » ne fait donc pas apparaître directement où réside le problème de communication. Si toutefois le serveur Web ciblé utilise IIS 7.0, IIS 7.5 ou IIS 8.0 comme système, des informations plus détaillées sont visibles sur le code de statut :

  • 400.1 : Destination Header non valide
  • 400.2 : Depth Header non valide
  • 400.3 : If Header non valide
  • 400.4 : Overwrite Header non valide
  • 400.5 : Translate Header non valide
  • 400.6 : Request Body non valide
  • 400.7 : Content-Länge non valide
  • 400.8 : Timeout non valide
  • 400.9 : Lock Token non valide

Par ailleurs, une erreur 400 ne se produit pas seulement lors de la navigation sur un navigateur. D’autres programmes, tels que les clients de messagerie, peuvent également recevoir le code de statut lors de la communication avec un serveur.

Prendre en charge une erreur 400 Bad Request

Comme avec la plupart des codes de statut affichant un message d’erreur, recharger simplement le site devrait être suffisant dans de nombreux cas. Le problème devrait être temporaire, surtout si l’erreur se produit pour la première fois sur un site Web que vous pouvez normalement charger sans problème. Si un nouveau chargement de la page ne résout pas directement le problème, cela entraîne parfois la réussite de la suppression du cache du navigateur. Éventuellement, votre navigateur Web vient de sauvegarder une copie du message d’erreur.

Mauvaise URL

L’étape suivante pour analyser le problème devrait être de vérifier l’URL : si vous avez entré l’adresse vous-même dans la barre de votre navigateur, vérifiez si elle ne comporte pas de faute de frappe.  Si vous avez cliqué sur un lien, vous pouvez vérifier l’orthographe ou accéder à la page principale, puis accéder à la page souhaitée.

Cookies défectueux

Le problème peut également survenir en raison de cookies obsolètes ou incorrects. Pour résoudre ce problème, supprimez simplement l’entrée correspondante dans votre navigateur. Lorsque vous visitez le site Web à nouveau, le logiciel crée un nouveau cookie.

Remarque

Les informations concernant la visite d’un site Web sont enregistrées dans les Cookies. Le serveur Web peut ainsi savoir si vous avez visité le site Web par le passé ainsi que les paramètres effectués à ce moment. Une directive européenne est censée assurer la sphère privée des internautes en matière de cookies.

Mauvaise entrée DNS

Une autre possibilité de solution est de supprimer votre cache DNS. Lorsque vous naviguez sur Internet, les noms de domaine que vous entrez sont traduits en adresses IP, uniquement pour se connecter au World Wide Web. Pour ce faire, une résolution de noms doit être effectuée. Pour raccourcir ce processus, votre PC enregistre temporairement les données collectées dans le cache DNS. Cependant, la prochaine fois que le domaine est entré dans le navigateur et que l’entrée n’a pas été automatiquement supprimée du cache, la résolution du nom est prise directement à partir du cache. Si cette entrée est corrompue ou n’est plus à jour, le message « HTTP Bad request » s’affiche.  

Pour supprimer l’entrée incorrecte, vous devez supprimer le cache DNS complet. Pour ce faire, exécutez l’invite de commande sous Windows et entrez la commande pour vider la mémoire cache.

                ipconfig /flushdns

Pour les systèmes Mac, la commande dépend de la version OS. Ces commandes sont entrées via le terminal :

  • OS X 10.4 (Tiger) : lookupd -flushcache
  • OS X 10.5 (Leopard) : dscacheutil -flushcache
  • OS X 10.6 (Snow Leopard) : dscacheutil - flushcache
  • OS X 10.7 (Lion) : sudo killall -HUP mDNSResponder
  • OS X 10.8 (Mountain Lion) : sudo killall -HUP mDNSResponder
  • OS X 10.9 (Mavericks) : dscacheutil -flushcashe; sudo killall -HUP mDNSResponder
  • OS X 10.10 (Yosemite) (10.10.1 – 10.10.3) : sudo discoverutil udnsflashcaches
  • OS X 10.10 (Yosemite) (10.10.4+) : sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • OS X 10.11 (El Capitan) : sudo killall -HUP mDNSResponder
  • macOS 10.12 (Sierra) : sudo killall -HUP mDNSResponder

Problèmes avec des champs d’en-tête http

En tant qu’utilisateur : supprimer les cookies et réinitialiser le navigateur

L’erreur http 400 se produit également lorsque l’en-tête http est trop long. En principe, les en-têtes n’ont pas de limite de taille. Toutefois, le serveur cible peut avoir défini une limite. L’en-tête se compose de plusieurs champs, dans lesquels les requêtes et les réponses sont définies. Lorsque les deux acteurs ont convenu des paramètres, les données demandées sont échangées. Si cela ne fonctionne pas, un message d’erreur s’affiche. Etant donné qu’il s’agit d’une communication entre votre navigateur et le serveur Web, les erreurs 400 correspondent généralement à des problèmes avec le client, causés par le navigateur. La meilleure façon de tester si votre navigateur par défaut crée le problème est de passer temporairement sur un autre navigateur.

Si le chargement de la page fonctionne sur le navigateur de test, revenez à votre navigateur Web par défaut. Supprimez y tout d‘abord vos cookies (si vous ne l’avez pas déjà fait précédemment pour régler le problème). Cette fois, ne supprimez pas seulement les cookies de manière ciblée, mais la totalité par sécurité. La raison pour cela : des cookies sont transférés en en-tête, c’est même comme cela que le serveur Web apprend des informations sur vos précédentes visites. Si le navigateur contient trop d’entrées dans la requête, l’en-tête pourrait dépasser la limite de longueur.

Si cette tentative de résolution de problème n’aboutit pas à un succès, il est pertinent de réinstaller complètement le navigateur ou bien de revenir aux réglages d’usine. Selon votre navigateur, il existe différentes façons de réinitialiser. Sur Firefox, accédez au centre d’aide pour dépannage en entrant : about:support. Vous y trouverez de nombreuses informations qui vous aideront à détecter les erreurs dans le logiciel. Même si vous contactez une équipe d’assistance, ces données sont importantes. Vous trouverez un bouton sur cette même page indiquant « nettoyer Firefox ». Un clic enregistre vos paramètres actuels, puis supprime les extensions ainsi que plusieurs paramètres.

Sur Internet Explorer, vous trouverez le bouton « réinitialiser » dans les options Internet sous l’onglet « avancé » ou « restaurer par défaut » (sous IE 6). Le navigateur Microsoft vous laisse le choix de supprimer ou non vos paramètres personnels lors de la réinitialisation. Comme Internet Explorer compte également sur ces paramètres en tant que caches et cookies, il est également recommandé de les supprimer.

Avec Chrome, vous trouverez la fonction « réinitialiser » dans les paramètres du système. Le navigateur conserve vos données personnelles, comme les mots de passe stockés et l’historique, mais restaure tout à l’état d’usine. Fermez le navigateur et redémarrez-le pour que les modifications prennent effet.

En tant que Webmaster : poser des limites

Si vous êtes un Webmaster et que vous vous êtes déjà plaint du code d’erreur 400, une modification des paramètres de serveur pourrait aider. Afin que des messages d’erreur ne s’affichent plus en raison d’un en-tête http trop long, les Webmasters peuvent poser des limites. Cependant, vous devez savoir qu’avec des limites plus élevées, vous augmentez aussi le risque de requêtes détériorées. L‘Internet Engineering Task Force (IETF) a également abordé l’erreur 400 Bad Request comme sujet de sa documentation sur http 1.1 et a souligné le risque de limites excessivement élevées (Smuggling Attacks) :

Citation

« A server that receives a request header field, or set of fields, larger than it wishes to process MUST respond with an appropriate 4xx (Client Error) status code. Ignoring such header fields would increase the server's vulnerability to request smuggling attacks (Section 9.5). »

Vous souhaitez de toute façon modifier la limite? Chaque serveur Web a sa propre méthode. Par exemple, avec IIS (utilisant ASP.NET), vous modifiez par exemple „maxRequestLength“ et „maxAllowedContentLength“. Avec Apache au contraire, vous définissez la limite avec „LimitRequestFieldSize“.

Prise de contact

Malheureusement, il se peut qu’aucune des variantes de résolution de problèmes présentées n’aboutisse au but. Vous devriez dans ce cas chercher de l’aide ailleurs. En principe, vous disposez de deux personnes à contacter selon que l’erreur http 400 est affichée sur une page spécifique, sur plusieurs sites ou sur tous les sites. Si l’erreur ne se produit que sur une page particulière et que les tentatives précédentes pour résoudre le problème n’ont pas réussi, vous pouvez contacter le Webmaster de la page, ou du moins essayer de le faire. Vous pouvez également contacter votre fournisseur d’accès à Internet si vous ne pouvez plus naviguer régulièrement, car l’erreur 400 Bad Request est affichée en permanence. Même si le problème ne concerne pas le fournisseur, l’équipe d’assistance peut vous aider.

Dans les deux cas, vos contacts fournissent généralement autant d’informations que possible. Cela inclut, d’une part, toutes les tentatives que vous avez entreprises jusqu’ici pour se débarrasser du problème. D’autre part, vous fournissez également des données sur votre système : quel système d’exploitation utilisez-vous ? Quel navigateur Internet utilisez-vous pour surfer sur le Net ? Avez-vous installé des extensions pour ce navigateur ? Utilisez-vous un pare-feu ou allez-vous sur Internet via un Proxy ? Toutes ces informations aident aussi bien l’équipe d’assistance qu’un webmaster pour la résolution du problème. Ceci vous permettra de surfer sur Internet à nouveau sans être dérangé par des erreurs 400.

Protocoles HTTP