Erreur HTTP 405 : Method Not Allowed

Comprendre et résoudre les erreurs de méthode HTTP.

L'erreur HTTP 405 "Method Not Allowed" indique que la méthode HTTP utilisée dans la requête (GET, POST, PUT, DELETE, etc.) n'est pas supportée par la ressource ciblée. Le serveur comprend la requête mais refuse de l'exécuter avec cette méthode.

Cette erreur est fréquente lors du développement d'APIs REST quand la configuration des routes est incorrecte, ou quand un client utilise la mauvaise méthode pour interagir avec un endpoint. Le serveur doit inclure un en-tête "Allow" listant les méthodes acceptées.

Pour le monitoring d'APIs, le 405 signale généralement un problème de configuration plutôt qu'une panne. Cependant, un changement soudain de comportement (un endpoint qui acceptait POST et retourne maintenant 405) mérite une investigation.

Causes principales des erreurs 405

L'erreur 405 peut provenir de plusieurs sources. Voici les causes les plus fréquentes :

Les méthodes HTTP expliquées

Comprendre les méthodes HTTP est essentiel pour résoudre les erreurs 405 :

Résolution des erreurs 405

Selon la cause identifiée, voici les solutions à appliquer :

Exemples de configuration

Voici des exemples pour gérer correctement les méthodes HTTP :

// JavaScript - Spécifier la méthode
fetch("/api/users/123", {
    method: "DELETE"  // ou GET, POST, PUT, PATCH
});

// PHP Laravel - Définir les routes
Route::get("/users", [UserController::class, "index"]);
Route::post("/users", [UserController::class, "store"]);
Route::put("/users/{id}", [UserController::class, "update"]);
Route::delete("/users/{id}", [UserController::class, "destroy"]);

// Express.js - Routes multiples
app.route("/users/:id")
    .get(getUser)
    .put(updateUser)
    .delete(deleteUser);

Définissez explicitement les méthodes acceptées pour chaque endpoint. Utilisez les conventions REST : GET pour lire, POST pour créer, PUT/PATCH pour modifier, DELETE pour supprimer.

Monitoring des méthodes HTTP

MoniTao permet de tester différentes méthodes HTTP :

Checklist API REST

  • GET pour récupérer des ressources (lecture)
  • POST pour créer de nouvelles ressources
  • PUT/PATCH pour modifier des ressources existantes
  • DELETE pour supprimer des ressources
  • En-tête Allow présent dans les réponses 405
  • Documentation des méthodes acceptées par endpoint

Questions fréquentes sur HTTP 405

Comment savoir quelles méthodes sont autorisées sur un endpoint ?

La réponse 405 doit contenir un en-tête "Allow" listant les méthodes acceptées. Vous pouvez aussi envoyer une requête OPTIONS pour découvrir les méthodes supportées.

Quelle est la différence entre PUT et PATCH ?

PUT remplace complètement la ressource (envoyez tous les champs). PATCH modifie partiellement (envoyez uniquement les champs à modifier). Les deux sont idempotents.

Pourquoi mon formulaire HTML retourne 405 ?

Vérifiez l'attribut method du formulaire (

). HTML ne supporte que GET et POST. Pour PUT/DELETE, utilisez JavaScript ou un champ _method.

Le code 405 affecte-t-il le SEO ?

Non directement, car Googlebot utilise principalement GET. Cependant, si vos pages publiques retournent 405 sur GET, elles ne seront pas indexées.

Comment gérer les méthodes non supportées par HTML ?

Les formulaires HTML ne supportent que GET et POST. Pour PUT/DELETE, utilisez JavaScript fetch/axios, ou ajoutez un champ caché _method que votre framework interprète.

Puis-je autoriser toutes les méthodes sur un endpoint ?

Techniquement oui, mais c'est déconseillé pour la sécurité. Autorisez uniquement les méthodes nécessaires à la logique métier de chaque endpoint.

Conclusion

L'erreur HTTP 405 Method Not Allowed indique une incompatibilité entre la méthode utilisée et celles acceptées par l'endpoint. Une bonne documentation API et des conventions REST cohérentes préviennent la plupart de ces erreurs.

MoniTao vous permet de configurer la méthode HTTP de chaque monitor, assurant que vos endpoints REST répondent correctement selon la sémantique attendue. Un 405 inattendu signale un changement de configuration à investiguer immédiatement.

Prêt à dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.