Código de estado 405 Método no permitido: El error "Herramienta incorrecta"

INEZA Felin-Michel

INEZA Felin-Michel

30 September 2025

Código de estado 405 Método no permitido: El error "Herramienta incorrecta"

Estás intentando colgar un cuadro en tu pared. Tienes un destornillador, pero lo que realmente necesitas es un martillo. Por mucho que lo intentes, ese destornillador simplemente no va a clavar ese clavo en la pared. La herramienta que estás usando no coincide con la tarea que intentas realizar.

Esta es la situación exacta capturada por uno de los códigos de error más específicos y útiles de HTTP: 405 Method Not Allowed.

A diferencia del más general 404 Not Found (que dice "No puedo encontrar lo que buscas") o 400 Bad Request (que dice "No entiendo lo que dices"), el error 405 es increíblemente preciso. Dice: "Encontré el recurso que buscas, pero estás utilizando el método HTTP incorrecto para interactuar con él."

Es la forma en que el servidor te dice: "Sé lo que es /api/users, pero no puedes ELIMINARLO. Intenta usar GET en su lugar."

Si eres un desarrollador que trabaja con APIs RESTful, comprender el código de estado 405 es crucial para construir y consumir APIs correctamente.

En esta detallada publicación de blog, exploraremos todo lo que necesitas saber sobre el estado 405 Method Not Allowed: qué significa, por qué ocurre, escenarios comunes, cómo solucionarlo y las mejores prácticas para manejarlo con elegancia.

💡
Si quieres probar y depurar este error de manera eficiente, asegúrate de descargar Apidog gratis. Apidog es una herramienta todo en uno para pruebas y documentación de API que facilita la interacción con APIs, la detección y corrección de errores como el 405, y la optimización de tu flujo de trabajo de desarrollo.
botón

Ahora, exploremos el propósito, la mecánica y las implicaciones prácticas del código de estado HTTP 405 Method Not Allowed.

El Problema: Métodos HTTP y Diseño RESTful

Para entender el 405, necesitamos revisar rápidamente cómo funcionan las APIs RESTful. En el diseño RESTful, la misma URL puede comportarse de manera diferente según el método HTTP (verbo) que uses:

El error 405 ocurre cuando intentas usar un método que el servidor no ha implementado para ese endpoint específico. Por ejemplo, intentar hacer un POST a /api/users/123 (que típicamente solo soporta GET, PUT, PATCH, DELETE) probablemente devolvería un 405.

¿Qué Significa Realmente HTTP 405 Method Not Allowed?

El código de estado 405 Method Not Allowed indica que el servidor conoce el recurso de destino (la URL que solicitaste) existe, pero no soporta el método HTTP utilizado en la solicitud.

Hay un requisito crucial para una respuesta 405 adecuada: debe incluir un encabezado Allow que enumere los métodos HTTP que están soportados para el recurso solicitado.

Una respuesta 405 adecuada se ve así:

HTTP/1.1 405 Method Not AllowedAllow: GET, HEAD, OPTIONSContent-Type: application/json
{
  "error": "Method Not Allowed",
  "message": "POST method is not supported for this endpoint."
}

Analicemos el componente clave:

En términos sencillos, el cliente envió un método HTTP válido como GET, POST, PUT, DELETE, etc., pero el servidor no permite ese método en particular en la URL o endpoint solicitado.

¿Por Qué Ocurre un Error 405?

Un 405 ocurre cuando el método utilizado en la solicitud HTTP no está permitido para el recurso. Las razones comunes incluyen:

Comprender la causa raíz ayuda a solucionar el problema de manera eficiente.

¿Por Qué los Servidores Devuelven 405 en Lugar de 404?

Quizás te preguntes, ¿por qué no simplemente devolver un 404 Not Found?

Bueno, un 404 significa que el recurso no se encuentra en absoluto, pero un 405 significa que el recurso existe, solo que no con ese método.

Esta distinción es importante para los desarrolladores porque te dice:

Cómo Funciona: Un Ejemplo Concreto

Imaginemos un endpoint de API de solo lectura que proporciona información de productos.

La Solicitud Válida:

GET /api/products/123 HTTP/1.1Host: api.example.com

Respuesta del Servidor: 200 OK con datos del producto.

La Solicitud Inválida:

Un cliente intenta erróneamente actualizar el producto usando PUT:

PUT /api/products/123 HTTP/1.1Host: api.example.comContent-Type: application/json
{"name": "New Product Name"}

La Respuesta 405 del Servidor:

HTTP/1.1 405 Method Not AllowedAllow: GET, HEADContent-Type: application/json
{
  "error": "Method Not Allowed",
  "message": "The PUT method is not supported for this resource."
}

El encabezado Allow: GET, HEAD le dice claramente al cliente que este es un endpoint de solo lectura. El cliente ahora sabe exactamente qué salió mal y cómo solucionarlo.

Por Qué el Encabezado Allow es Tan Importante

El encabezado Allow transforma el 405 de un error frustrante en una conversación útil. Sin él, un cliente se quedaría adivinando:

Es por eso que la especificación HTTP exige que los servidores incluyan el encabezado Allow en las respuestas 405. Es lo que hace que el código sea realmente útil en lugar de simplemente frustrante.

¿Cómo Se Ve una Respuesta 405?

Los servidores responden con el estado 405 junto con un encabezado Allow que indica los métodos HTTP permitidos. RFC 7231 (especificación HTTP/1.1) instruye que cuando se envía un código de estado 405, el servidor DEBE incluir un encabezado Allow que enumere los métodos HTTP permitidos para ese recurso.

Ejemplo de respuesta:

textHTTP/1.1 405 Method Not Allowed Allow: GET, HEAD, OPTIONS Content-Type: text/html
<html> <body> <h1>405 Método No Permitido</h1> <p>El método POST solicitado no es compatible con este recurso.</p> </body> </html>

El encabezado Allow es clave porque informa al cliente qué métodos son aceptables, permitiendo correcciones.

De esta manera, los clientes saben qué métodos son compatibles y pueden ajustar sus solicitudes en consecuencia.

Escenarios Comunes que Desencadenan Errores 405

1. Endpoints de Solo Lectura

Como en nuestro ejemplo anterior, algunos recursos son intencionalmente de solo lectura. Puedes recuperarlos con GET, pero no puedes modificarlos con PUT, PATCH o DELETE.

2. Método Incorrecto para la Acción

Esta es probablemente la causa más común. Los desarrolladores confunden qué método usar para cada acción.

3. Implementación de Método Faltante

El diseñador de la API puede simplemente no haber implementado un método particular para un endpoint. Por ejemplo, un endpoint podría soportar GET y POST pero no PUT o DELETE.

4. Firewalls de Aplicaciones Web (WAFs) y Reglas de Seguridad

A veces, las configuraciones de seguridad bloquean intencionalmente ciertos métodos. Por ejemplo, un WAF podría bloquear los métodos PUT, PATCH y DELETE en ciertas rutas por razones de seguridad, devolviendo un 405.

405 vs. Otros Errores 4xx: Conociendo la Diferencia

Es importante distinguir el 405 de otros códigos de error del cliente.

405 significa "Esta URL existe, pero no para ese método."

404 significa "Esta URL no existe para ningún método."

405 significa "Sé lo que quieres hacer, pero no te permitiré hacerlo para este recurso específico." (Error del cliente)

501 significa "No sé cómo manejar este método HTTP en absoluto, para ningún recurso." (Error del servidor)

405 significa "Esta operación no está disponible para nadie." (Limitación del método)

403 significa "Esta operación está disponible, pero no para ti con tus permisos actuales." (Limitación de autorización)

Escenarios Comunes Donde Aparece el 405

Cómo Deben Manejar los Clientes el 405 Method Not Allowed

Cuando los clientes reciben una respuesta 405, deberían:

Cómo Pueden los Desarrolladores Solucionar Errores 405

Ejemplos de Métodos HTTP y Uso Permitido

Método HTTP Caso de Uso Típico
GET Recuperar recurso o datos
POST Crear recurso o realizar acciones
PUT Actualizar o reemplazar recurso
DELETE Eliminar recurso
PATCH Actualizar parcialmente recurso
OPTIONS Consultar métodos soportados

Una falta de coincidencia entre el método y las capacidades del recurso desencadena un 405.

Probando Respuestas 405 con Apidog

Material promocional de Apidog

Probar que tu API devuelve correctamente un 405 para métodos no soportados es un sello distintivo del desarrollo robusto de APIs. Apidog hace este proceso increíblemente sencillo.

Con Apidog, puedes:

  1. Prueba Todos los Métodos Fácilmente: Toma cualquier URL de endpoint y cambia rápidamente entre los métodos GET, POST, PUT, PATCH, DELETE con un solo clic para ver cuáles son soportados.
  2. Valida el Encabezado Allow: Cuando recibas una respuesta 405, Apidog te mostrará claramente el encabezado Allow en los detalles de la respuesta. Puedes verificar que contenga la lista correcta de métodos.
  3. Automatiza las Pruebas de Métodos: Crea suites de prueba que verifiquen automáticamente que los métodos no soportados devuelvan 405 con el encabezado Allow adecuado, mientras que los métodos soportados devuelvan el estado 2xx esperado.
  4. Depura Código del Lado del Cliente: Si estás construyendo una aplicación cliente que recibe un 405, puedes usar Apidog para replicar la solicitud y respuesta exactas, ayudándote a entender y solucionar el problema en tu código cliente.
  5. Documenta el Comportamiento de la API: Usa Apidog para documentar qué métodos son soportados para cada endpoint, haciendo esta información clara para otros desarrolladores que consumen tu API.
botón

En lugar de adivinar, obtienes claridad en segundos. Descarga Apidog gratis y haz que la resolución de problemas de errores HTTP sea sencilla.

Mejores Prácticas para Manejar los 405

Para Desarrolladores de API (Lado del Servidor):

Para Consumidores de API (Lado del Cliente):

El Rol del Método OPTIONS

El método OPTIONS es el primo proactivo de la respuesta 405. En lugar de intentar una operación y ser rechazado, un cliente puede primero preguntar al servidor qué métodos son soportados:

Solicitud:

OPTIONS /api/products/123 HTTP/1.1Host: api.example.com

Respuesta:

HTTP/1.1 200 OKAllow: GET, HEAD, OPTIONS

Esta es una forma mucho más elegante de descubrir las capacidades de una API sin desencadenar errores.

Solución de Problemas Comunes del 405

Implicaciones de Seguridad del 405

El 405 también puede tener implicaciones de seguridad:

Conclusión: De la Frustración a la Claridad

El código de estado 405 Method Not Allowed no es solo un obstáculo aleatorio. Es una señal valiosa de que el recurso existe pero no acepta el método que usaste. El código de estado HTTP 405 Method Not Allowed es un ejemplo perfecto de cómo un buen diseño de API proporciona retroalimentación clara y accionable. Transforma lo que podría ser un callejón sin salida confuso en una señal útil que dice: "No puedes ir por aquí, pero estas son las rutas que están abiertas para ti."

Para los desarrolladores de API, implementar respuestas 405 adecuadas con encabezados Allow precisos es una señal de profesionalismo y atención al detalle. Para los consumidores de API, comprender cómo leer y responder a los errores 405 es clave para construir aplicaciones robustas y auto-correctivas.

Así que la próxima vez que encuentres un error 405, no te frustres, lee el encabezado Allow. Es el servidor intentando ayudarte a tener éxito. Y cuando estés construyendo o probando APIs tú mismo, una herramienta como Apidog te dará el poder para asegurar que el uso de tus métodos sea correcto y que tu manejo de errores sea tan útil como debería ser.

botón

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs