Los se­r­vi­do­res web informan a los clientes (los na­ve­ga­do­res, por ejemplo) sobre el estado de las consultas rea­li­za­das con ayuda de códigos de estado HTTP. Existen di­fe­re­n­tes códigos para confirmar el éxito o el fracaso de las so­li­ci­tu­des y, entre ellos, también mensajes muy es­pe­cí­fi­cos. Mientras que algunos de estos avisos tienen lugar cuando se navega dia­ria­me­n­te por la World Wide Web, el error 405 Method Not Allowed se cuenta entre los fallos que rara vez se notifican. A co­n­ti­nua­ción te contamos qué es lo que genera estos mensajes de error y por qué la solución al problema recae en los ad­mi­ni­s­tra­do­res de las páginas web.

Dominios web
Compra y registra tu dominio ideal
  • Gratis SSL Wildcard para tra­n­s­fe­re­n­cias de datos más seguras
  • Gratis registro privado para más pri­va­ci­dad

¿Qué se esconde tras el error 405 HTTP?

El Hypertext Transfer Protocol (HTTP) define métodos que designan posibles acciones que se ejecutan en el servidor web co­n­ta­c­ta­do. Entre ellos se engloban:

  • GET: extrae los datos vi­n­cu­la­dos a un recurso de URL de­te­r­mi­na­do
  • HEAD: extrae los datos del en­ca­be­za­do vi­n­cu­la­dos a un recurso de URL
  • POST: envía datos al servidor web, como datos de fo­r­mu­la­rios
  • PUT: sustituye los datos para un URL de­te­r­mi­na­do por los nuevos que ha fa­ci­li­ta­do el cliente
  • DELETE: elimina los datos que hay detrás del URL co­rre­s­po­n­die­n­te

El ad­mi­ni­s­tra­dor puede co­n­fi­gu­rar cada servidor web de modo que sea capaz de permitir o denegar cada uno de los métodos. Si la página web carece de contenido in­ter­ac­ti­vo es lógico que no se autorice el método POST, ya que el usuario no tiene la po­si­bi­li­dad ni de in­tro­du­cir sus propios datos ni de enviarlos al servidor web. Si, por el contrario, la página incluye un fo­r­mu­la­rio, el servidor tiene que au­to­ri­zar­lo. De no ser así, se recibirá el mensaje de error status code 405, que informa al navegador y a sus usuarios que el método aplicado no está au­to­ri­za­do, en inglés Method not Allowed.

El texto literal de un mensaje 405 HTTP puede variar en función del servidor, pero algunas de las fórmulas más conocidas son las si­guie­n­tes:

  • 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

¿En qué si­tua­cio­nes se produce el error 405?

Al comienzo de nuestro artículo ya se ha indicado que el 405 error es un fallo que puede atri­bui­r­se a un problema del lado del servidor. No obstante, esto no parece tener sentido pues el status code 405 es concebido desde un punto de vista técnico como uno de los mensajes de error del cliente (códigos con el patrón 4xx). Sin embargo, esta co­n­tra­di­c­ción se entiende fá­ci­l­me­n­te de la siguiente manera: si, como usuario de un navegador, envías una petición al servidor web con un método HTTP que este no autoriza debido a su co­n­fi­gu­ra­ción, desde el punto de vista del servidor el error reside en el lado del cliente, que habría realizado, según él, una pregunta in­co­rre­c­ta. El servidor, al procesar esta petición, no sabe que solo quieres acceder a la página web para rellenar un fo­r­mu­la­rio.

En concreto, tres son las si­tua­cio­nes que pueden dar lugar al HTTP 405 code:  

  1. La prohi­bi­ción del método HTTP co­rre­s­po­n­die­n­te tiene su origen en una co­n­fi­gu­ra­ción errónea del servidor web o de los co­m­po­ne­n­tes de software en­ca­r­ga­dos de ejecutar la acción co­rre­s­po­n­die­n­te para el recurso de URL deseado.
  2. El webmaster ha previsto la prohi­bi­ción del método HTTP, en la mayoría de los casos por motivos de seguridad. El error reside en un recurso de URL del proyecto web en cuestión que, a causa de su pro­gra­ma­ción, solicita el método no au­to­ri­za­do.
  3. El proveedor de hosting del ad­mi­ni­s­tra­dor de la página web no autoriza el método HTTP, lo que puede ocurrir con el método POST, necesario para la in­tro­du­c­ción de datos y, que en el caso de algunos pro­vee­do­res, está bloqueado a la hora de acceder a do­cu­me­n­tos HTML por motivos de seguridad.

Error 405 Method Not Allowed: ¿cómo se soluciona el problema?

Si te en­cue­n­tras un proyecto web que muestra mensajes de error 405, existen muy pocas po­si­bi­li­da­des de que puedas so­lu­cio­nar el problema. Mientras que otros mensajes de error de HTTP pueden so­l­ve­n­tar­se con trucos como ac­tua­li­zar la página, reiniciar el router o comprobar la co­n­fi­gu­ra­ción del proxy, estas medidas no surten efecto ante el error 405 Not Allowed. En cualquier caso, es im­po­r­ta­n­te ponerse en contacto con el webmaster o el ad­mi­ni­s­tra­dor de la página web re­s­po­n­sa­ble para in­fo­r­mar­le del problema o para obtener in­fo­r­ma­ción más precisa sobre las causas del mismo.

Si eres el re­s­po­n­sa­ble de una página que muestra a los usuarios el 405 HTTP code, la situación es algo distinta, por lo que en función de la causa del mensaje de error 405 existen diversas po­si­bi­li­da­des para so­lu­cio­nar el problema. Para no incomodar a los usuarios y evitar las pe­na­li­za­cio­nes de los bu­s­ca­do­res, lo más re­co­me­n­da­ble es corregir el error 405 Method Not Allowed lo antes posible.

Solución nº 1: de­s­blo­quear el método HTTP

Si no estás seguro de la causa del aviso 405 Method Not Allowed, el primer paso es echar un vistazo a la co­n­fi­gu­ra­ción de los co­m­po­ne­n­tes de software que se ocupan de dar respuesta a las so­li­ci­tu­des HTTP. No­r­ma­l­me­n­te, los re­s­po­n­sa­bles del problema pueden ser el servidor web, un proxy an­te­pue­s­to o un co­n­tro­la­dor HTTP (en apli­ca­cio­nes ASP.NET) si el método no está de­s­blo­quea­do. Debido a que las apli­ca­cio­nes se di­fe­re­n­cian entre sí en su co­n­fi­gu­ra­ción, es co­n­ve­nie­n­te in­fo­r­mar­se sobre cómo funciona la ac­ti­va­ción o des­ac­ti­va­ción de los métodos HTTP en el software en cuestión. En los se­r­vi­do­res web Apache se pueden definir los métodos que se autorizan con ayuda del módulo mod_allo­w­me­tho­ds, el cual puede co­n­tro­lar­se mediante la directiva Allo­w­Me­tho­ds dentro de los co­n­te­ne­do­res <Location>, ne­ce­sa­rios para de­te­r­mi­nar la co­n­fi­gu­ra­ción de uno o varios URL. Una co­n­fi­gu­ra­ción que permita tanto el acceso a los recursos como la entrada de datos en la parte del cliente puede es­ta­ble­ce­r­se de la siguiente manera:

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

En versiones más antiguas de Apache se definen los métodos HTTP au­to­ri­za­dos por medio de las di­re­c­ti­vas <Limit> y <Li­mi­tE­x­ce­pt>.

Solución nº 2: corregir el código fuente

Si has bloqueado un método HTTP de­li­be­ra­da­me­n­te para, por ejemplo, ga­ra­n­ti­zar la seguridad de la página web, un pro­ce­di­mie­n­to frecuente en el método PUT, pero sin embargo el cliente ha realizado una petición para consultar los recursos de URL, el problema recae en que la pro­gra­ma­ción de la página web contiene errores. La página visitada o el elemento so­li­ci­ta­do están erró­nea­me­n­te vi­n­cu­la­dos con el método, por lo que el error 405 es la co­n­se­cue­n­cia lógica. La solución estriba en este caso en localizar el código pro­ble­má­ti­co en el re­s­pe­c­ti­vo documento HTML y re­em­pla­zar el método hasta ahora re­gi­s­tra­do por el método de petición adecuado. Si la co­n­fi­gu­ra­ción del servidor y el código fuente vuelven a estar coor­di­na­dos, lo más probable es que el error 405 HTTP también des­apa­re­z­ca de las ventanas del navegador de los vi­si­ta­n­tes.

Solución nº 3: evitar el bloqueo de seguridad del proveedor

Como ya se ha me­n­cio­na­do, la causa del error HTTP 405 Method Not Allowed puede ser que el proveedor de hosting desactive el método HTTP co­rre­s­po­n­die­n­te para de­te­r­mi­na­dos tipos de MIME, como por ejemplo los do­cu­me­n­tos HTML, por motivos de seguridad. En estas si­tua­cio­nes se puede contactar con el proveedor y so­li­ci­tar­le el de­s­blo­queo, pero si no fuera posible, existen algunos trucos para utilizar el método en tu proyecto web.

De esta manera puedes entregar la página web con otro tipo de MIME para el que el método esté di­s­po­ni­ble y así evitar el bloqueo. POST se desactiva pri­n­ci­pa­l­me­n­te para páginas HTML, pero sin embargo funciona en do­cu­me­n­tos PHP. Si modificas la extensión (te­r­mi­na­ción) y cambias el tipo de documento web de ejemplo index.html por index.php, tendrás la po­si­bi­li­dad de resolver el 405 HTTP code.

Otro truco consiste en im­ple­me­n­tar la página web que ocasiona el error como contenido de la página de error 405. Guarda la página en cuestión en un di­re­c­to­rio separado y defínela en el archivo de co­n­fi­gu­ra­ción como 405 error oficial:

ErrorDocument 405 /PathToFile/example.html

Esta solución tiene, sin embargo, la de­s­ve­n­ta­ja de que todas las visitas que se hagan a la página serán co­n­si­de­ra­das como error, lo que dificulta el análisis es­ta­dí­s­ti­co.

Ir al menú principal