Les serveurs Web informent les clients comme les na­vi­ga­teurs Internet de l’état de trai­te­ment de la demande à l’aide de codes d’état HTTP. Il existe divers codes pour confirmer le succès ou l’échec d’une requête, y compris des messages très spé­ci­fiques. Bien que certaines de ces no­ti­fi­ca­tions se pro­dui­sent re­la­ti­ve­ment fré­quem­ment lorsque l’on navigue sur le Web, l’erreur 405 (méthode non autorisée) est l’une des erreurs signalées les plus rares. Dans cet article, vous dé­cou­vri­rez ce qui provoque ce message d’erreur et pourquoi la solution du problème est l’affaire de l’ex­ploi­tant du site Web.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Que signifie l’erreur HTTP 405 ?

Le protocole HTTP (Hypertext Transfer Protocol) définit ses méthodes (méthodes de requête) qui indiquent les actions possibles qui peuvent être ef­fec­tuées sur le serveur Web contacté. Il s’agit par exemple des méthodes suivantes :

  • GET : récupérer les in­for­ma­tions associées à une ressource URL par­ti­cu­lière
  • HEAD : récupérer les in­for­ma­tions de l’en-tête associées à une ressource URL
  • POST : envoyer des données au serveur Web, par exemple, des données de for­mu­laire
  • PUT : remplacer les données d'une URL spé­ci­fique par de nouvelles données trans­mises par le client.
  • DELETE : supprimer les données de l’URL cor­res­pon­dante

L’ad­mi­nis­tra­teur peut con­fi­gu­rer chaque serveur Web pour autoriser ou interdire les méthodes in­di­vi­duelles. Par exemple, s’il n’y a pas de contenu in­te­rac­tif sur le site Web, il est logique que la méthode POST ne soit pas autorisée, puisque l’uti­li­sa­teur n’a de toute façon aucun moyen d’entrer ses propres données et de les envoyer au serveur Web. Cependant, si la page comporte un for­mu­laire de saisie uti­li­sa­teur, le serveur doit autoriser la méthode POST. Sinon, le message d’erreur ci-dessus avec le code d’état 405 risque donc de s’afficher, informant le na­vi­ga­teur et son uti­li­sa­teur que la méthode utilisée n’est pas autorisée (en anglais Method not Allowed).

Le libellé exact du message HTTP 405 varie d’un serveur à l’autre. Les for­mu­la­tions les plus courantes sont les suivantes :

  • 405 Method Not Allowed
  • 405 Not Allowed
  • Method Not Allowed
  • HTTP 405 Error
  • HTTP Error 405 – Method Not Allowed
  • HTTP 405 Method Not Allowed
  • Error: 405 Method Not Allowed
  • 405 – HTTP verb used to access this page is not allowed
  • HTTP Status 405 – HTTP method GET is not supported by this URL

Quand l’erreur 405 se produit-elle ?

Nous avons déjà indiqué que l’erreur 405 est ex­clu­si­ve­ment due à un problème côté serveur. Cependant, comme le code d’état 405 est tech­ni­que­ment l’un des messages d’erreur du client (codes avec le modèle 4xx) cela ne semble pas avoir de sens à première vue. Cependant, la con­tra­dic­tion est ra­pi­de­ment résolue : si, en tant qu’uti­li­sa­teur du na­vi­ga­teur, vous trans­met­tez une requête au serveur Web en utilisant une méthode HTTP que le serveur Web n’autorise pas en raison de sa con­fi­gu­ra­tion, l’erreur du point de vue du serveur est du côté du client qui, dans ce cas, a sim­ple­ment fait une requête in­cor­recte. Lors du trai­te­ment de la requête, le serveur ne sait pas que vous voulez uni­que­ment répondre à l’offre du site Web comme, par exemple, remplir un for­mu­laire de contact.

Trois scénarios en par­ti­cu­lier peuvent conduire au message d’erreur « Method Not Allowed » :

  1. L’in­ter­dic­tion de la méthode HTTP cor­res­pon­dante est due à une mauvaise con­fi­gu­ra­tion du serveur Web ou des com­po­sants logiciels qui doivent exécuter l’action cor­res­pon­dante pour obtenir la ressource URL désirée.
  2. L’in­ter­dic­tion de la méthode HTTP est prévue par le Webmaster, et dans la plupart des cas pour des raisons de sécurité. L’erreur réside dans une ressource URL du projet Web en question qui nécessite la méthode non autorisée en raison de sa pro­gram­ma­tion.
  3. La méthode HTTP n’est pas autorisée par le four­nis­seur d‘hé­ber­ge­ment de l’opérateur du site Web. Ceci peut se produire en par­ti­cu­lier avec la méthode POST, qui est né­ces­saire pour la saisie des données et qui est bloquée pour des raisons de sécurité chez certains four­nis­seurs lors de l’accès aux documents HTML.

Erreur HTTP 405 : comment résoudre le problème ?

Si vous tombez sur un site Internet qui affiche le message 405 Not Allowed, vous pouvez dif­fi­ci­le­ment résoudre le problème vous-même. Bien que des astuces telles que le ra­fraî­chis­se­ment de la page, le re­dé­mar­rage du routeur ou la vé­ri­fi­ca­tion des pa­ra­mètres de proxy peuvent gé­né­ra­le­ment corriger l’erreur pour d’autres messages HTTP, de telles mesures n’ont aucun effet avec l’erreur 405. Dans tous les cas, il est judicieux et pertinent de contacter le Webmaster ou le ges­tion­naire du site Internet res­pon­sable pour attirer leur attention sur le problème ou pour obtenir de plus amples in­for­ma­tions sur les causes.

Cependant, si vous êtes res­pon­sable d’un site Internet qui affiche le code HTTP 405 aux in­ter­nautes, la situation est bien sûr com­plè­te­ment dif­fé­rente : selon la cause du message d’erreur, vous disposez alors de diverses options pour résoudre le problème. Afin de ne pas gêner vos uti­li­sa­teurs et d’éviter des pénalités de la part des moteurs de recherche, vous devez corriger l’erreur le plus tôt possible.

Solution 1 : activer la méthode HTTP

Si vous n’êtes pas sûr de la cause du message « 405 Method Not Allowed », vous devriez toujours regarder d’abord les pa­ra­mètres des com­po­sants logiciels qui gèrent la réponse des requêtes HTTP. Ty­pi­que­ment, c’est le serveur Web, mais aussi un proxy en amont ou un HTTP Handler (dans les ap­pli­ca­tions Web ASP.NET) qui peut être res­pon­sable du problème si la méthode n’est tout sim­ple­ment pas validée. Comme les dif­fé­rentes ap­pli­ca­tions divergent en termes de con­fi­gu­ra­tion, vous devez d’abord découvrir comment fonc­tionne l’ac­ti­va­tion ou la dé­sac­ti­va­tion des méthodes HTTP pour le logiciel cor­res­pon­dant.

Pour les serveurs Web apache, par exemple, vous pouvez utiliser le module mod al­low­me­thods pour dé­ter­mi­ner les méthodes au­to­ri­sées. Ceci peut être contrôlé par la directive Al­low­Me­thods dans les con­te­neurs <Location>, qui sont né­ces­saires pour définir les pa­ra­mètres d’une ou de plusieurs URL sou­hai­tées. Une con­fi­gu­ra­tion per­met­tant l’accès à la ressource et la saisie des données côté client peut être mise en œuvre via l’entrée suivante :

<Location "/">
    AllowMethods GET POST OPTIONS
</Location>
Note

pour les anciennes versions d’Apache, les méthodes HTTP au­to­ri­sées ont été définies en utilisant les di­rec­tives <Limit> et <Li­mi­tEx­cept>.

Solution 2 : nettoyer le code source

Si vous avez dé­li­bé­ré­ment bloqué une méthode HTTP, par exemple pour assurer la sécurité du site Web (pratique courante avec la méthode PUT), mais le client a quand même démarré une telle requête pour récupérer les res­sources URL, ceci est souvent dû à une pro­gram­ma­tion in­cor­recte du site Web. La page ou l'élément que l’on souhaite ouvrir est donc in­cor­rec­te­ment lié à la méthode, c'est pourquoi l'erreur 405 en est la con­sé­quence logique. La solution est de trouver le code pro­blé­ma­tique dans le document HTML en question, et de remplacer la méthode saisie pré­cé­dem­ment par la méthode de requête correcte. Une fois que la con­fi­gu­ra­tion du serveur et le code source ont été ajustés, il est fort probable que l'erreur HTTP 405 dis­pa­raisse aussi de la fenêtre du na­vi­ga­teur de vos in­ter­nautes.

Solution 3 : con­tour­ner le verrou de sécurité du four­nis­seur d’accès

Comme nous l’avons déjà mentionné, l’erreur 405 peut aussi avoir comme cause le fait que les méthodes HTTP cor­res­pon­dantes pour certains types MIME, comme par exemple un document HTML, ont été dé­sac­ti­vées par le four­nis­seur d’hé­ber­ge­ment pour des raisons de sécurité. Dans ce cas, vous pouvez bien sûr contacter votre four­nis­seur et demander son au­to­ri­sa­tion, mais si ce n’est pas possible, il existe de toute façon des astuces pour utiliser la méthode pour votre projet Web.

Ceci vous permet de livrer le site Web avec un type MIME différent pour lequel la méthode désirée est dis­po­nible pour con­tour­ner le ver­rouil­lage. Par exemple, POST est prin­ci­pa­le­ment désactivé pour les pages HTML, alors que la méthode fonc­tionne dans les documents PHP. Donc si vous changez l’extension et donc aussi le type du document Web index.html en index.php, vous avez de bonnes chances de résoudre le problème « 405 Method Not Allowed ».

Une deuxième astuce consiste à im­plé­men­ter la page Web qui provoque l'erreur HTTP lorsque le contenu de la page d'erreur 405 s’affiche. Pour cela, il suffit d'en­re­gis­trer la page concernée dans un ré­per­toire séparé et de la définir comme message d'erreur officiel 405 dans le fichier de con­fi­gu­ra­tion :

ErrorDocument 405 /cheminversfichier/example.html

Cependant, la solution présente l’in­con­vé­nient que toutes les pages vues avec succès pour cette page sont comptées comme des erreurs, ce qui rend les éva­lua­tions sta­tis­tiques bien plus dif­fi­ciles.

Aller au menu principal