Método 405 no permitido: qué es y cómo solucionarlo18 de enero de 2018
El
405 Método no permitido es un código de estado de respuesta HTTP que
indica que el servidor recibió y reconoció el método HTTP de solicitud
especificado, pero el servidor ha rechazado ese método en particular
para el recurso solicitado. Este mensaje es claramente diferente del código 404 No encontrado que vimos hace un tiempo. Un
error 404 No encontrado indica que no se pudo encontrar el recurso
solicitado y, a menudo, es el resultado de una URL incorrecta o de
intentar acceder a un recurso para el cual el cliente tiene permisos
inadecuados. A
la inversa, una respuesta de código 405 confirma que el recurso
solicitado es válido y existe, pero el cliente ha utilizado un método
HTTP inaceptable durante la solicitud.Como
la mayoría de los códigos de respuesta HTTP, especialmente para
aquellos que indican un error, la causa de una respuesta 405 Método no
permitido puede ser difícil de localizar y corregir. Con
un grupo potencial de más de 50 códigos de estado que representan la
compleja relación entre el cliente, una aplicación web, un servidor web
y, a menudo, múltiples servicios web de terceros, determinar la causa de
un código de estado en particular puede ser un desafío para los mejores
de las circunstancias.En
este artículo, examinaremos el Método 405 no permitido con más detalle
al observar qué podría causar un mensaje, junto con algunos consejos
para diagnosticar y depurar la apariencia de este error en su propia
aplicación. Incluso
examinaremos algunos de los sistemas de administración de contenido
(CMS) más populares para detectar posibles áreas problemáticas que
podrían hacer que su propio sitio web genere un 405 Método no permitido
inesperadamente. ¡Vamos a bucear!¿Servidor o cliente?Todos
los códigos de estado de respuesta HTTP que se encuentran en la
categoría 4xx se consideran respuestas de error del cliente. Esta
categoría contrasta con los errores de clasificación 5xx, como el 503
Service Unavailable Error que exploramos hace unos meses, que se
consideran respuestas de error del servidor. Dicho
esto, la aparición de un error 4xx no significa necesariamente que el
problema se encuentre en el lado del cliente, donde el "cliente" es el
navegador web o el dispositivo que se utiliza para acceder a la
aplicación. A
menudo, si está intentando diagnosticar un problema dentro de su propia
aplicación, puede ignorar de inmediato la mayoría de los códigos y
componentes del lado del cliente, como HTML, hojas de estilo en cascada
(CSS), JavaScript del lado del cliente, etc. Esto tampoco se aplica únicamente a los sitios web. Muchas
aplicaciones de teléfonos inteligentes, que implementan una interfaz de
usuario de aspecto moderno, en realidad funcionan con una aplicación
web normal detrás de escena que simplemente está oculta para el usuario.Por otro lado, esto no descarta completamente el servidor como la causa real de un método 405 no permitido. En
algunos casos, el servidor puede estar mal configurado y el manejo de
las solicitudes de manera incorrecta, lo que puede resultar en 405
respuestas de código y otros problemas de enrutamiento de tráfico
problemáticos. A
continuación, exploraremos algunos de estos escenarios (y posibles
soluciones), pero tenga en cuenta que, aunque el Método 405 no permitido
se considera una respuesta de error del cliente, no significa que
podamos descartar ni el cliente ni el cliente. servidor como el culpable en este escenario. En
estos escenarios, el servidor sigue siendo el objeto de red que produce
el Método 405 No permitido y lo devuelve como el código de respuesta
HTTP al cliente, pero puede ser que el cliente esté causando el problema
de alguna manera.Comience con una copia de seguridad completa de la aplicaciónAl
igual que con cualquier cosa, es mejor haber jugado de manera segura al
principio que arruinar algo y lamentarlo más adelante en el camino. Como
tal, es fundamental que realice una copia de seguridad completa de su
aplicación, base de datos y todos los demás componentes de su sitio web o
aplicación antes de intentar cualquier corrección o cambio en el
sistema. Aún
mejor, si tiene la capacidad, cree una copia completa de la aplicación y
pegue la copia en un servidor de almacenamiento secundario que no esté
activo o sea inaccesible para el público. Esto
le dará un terreno de prueba limpio con el que probar todas las
soluciones posibles para resolver el problema, sin amenazar la seguridad
o la santidad de su aplicación en vivo.Diagnóstico de un método 405 no permitidoComo
se discutió en la introducción, un Método 405 no permitido indica que
el agente de usuario (el navegador web, en la mayoría de los casos) ha
solicitado un recurso válido utilizando un método HTTP no válido. Esto podría suceder en algunas circunstancias diferentes:
El agente de usuario está enviando accidentalmente un método HTTP incorrecto.
El servidor espera solo un puñado de métodos HTTP válidos para el recurso solicitado.Actualmente hay 9 métodos HTTP posibles que se pueden usar, aunque algunos de ellos son mucho más frecuentes que otros. Por
ejemplo, el método GET maneja la gran mayoría de las solicitudes
realizadas en Internet, ya que se utiliza únicamente para recuperar
datos (es decir, "obtener" una página o recurso). El
método POST es el segundo más común, y generalmente se usa para enviar
datos al servidor (como las credenciales de inicio de sesión).Desde cada uno
de
los posibles métodos HTTP tienen sus propios usos previstos, a menudo
no tiene sentido que un servidor acepte solicitudes utilizando ciertos
métodos para recursos particulares. Por
ejemplo, podría existir un recurso en la URL
https://airbrake.io/users/create, que el servidor utiliza para crear un
nuevo usuario cuando se envían credenciales válidas a través de una
solicitud de método POST HTTP. Por
lo tanto, en tal escenario, no tiene sentido que el servidor acepte una
solicitud GET en ese recurso / URL, por lo que puede responder con un
código 405 Método no permitido cuando se realiza dicha solicitud.
Solución de problemas en el lado del cliente Desde el 405
Método no permitido es un código de respuesta de error del cliente, es
mejor comenzar por solucionar cualquier problema potencial del lado del
cliente que pueda estar causando este error. Aquí
hay algunos consejos que puede probar en el navegador o dispositivo que
le está dando problemas. Verifique la URL solicitada La causa más común
de un método 405 no permitido es simplemente ingresar una URL
incorrecta. Como
se mencionó anteriormente, muchos servidores web están bien protegidos
para no permitir el acceso a direcciones URL incorrectas a las que el
servidor no está preparado para proporcionar acceso. Esto
podría ser desde intentar acceder a un directorio de archivos a través
de una URL hasta intentar acceder a una página privada destinada a otros
usuarios. Dado
que los códigos 405 no son tan comunes como los códigos 404, la
aparición de un 405 podría significar que la URL solicitada es válida,
pero se usa normalmente para. De
cualquier manera, es una buena idea verificar la URL exacta que está
devolviendo el error 405 Método no permitido para asegurarse de que sea
un recurso destinado. Disparar plataformas comunesSi está ejecutando
paquetes de software comunes en el servidor que responde con el 405 Método
no permitido, es posible que desee comenzar por investigar primero la
estabilidad y la funcionalidad de esas plataformas. Los
sistemas de administración de contenido más comunes, como WordPress,
Joomla! Y Drupal, generalmente están bien probados, pero una vez que
comienzas a hacer modificaciones a las extensiones subyacentes o al
código PHP (el lenguaje en el que casi toda la administración de
contenido moderno los
sistemas están escritos en), es muy fácil causar un problema imprevisto
que se traduce en un Método 405 No permitido. A continuación, le
ofrecemos algunos consejos para ayudarlo a solucionar algunas de estas
plataformas de software populares.Recurridas Actualizaciones recientesSi
actualizó el contenido recientemente el
sistema de administración en sí mismo justo antes de que apareciera el
Método 405 no permitido, es posible que desee considerar volver a la
versión anterior que tenía instalada cuando las cosas funcionaban bien. De
manera similar, cualquier extensión o módulo que haya actualizado
recientemente también puede causar problemas en el servidor, por lo que
volver a las versiones anteriores de estos también puede ayudar. Para obtener ayuda con esta tarea, simplemente baje la versión anterior [PLATFORM_NAME] de Google y continúe. Sin
embargo, en algunos casos, ciertos CMS no proporcionan realmente una
capacidad de degradación de versión, lo que indica que consideran que la
aplicación base, junto con cada nueva versión lanzada, es
extremadamente estable y libre de errores. Este
suele ser el caso de las plataformas más populares, así que no tenga
miedo si no puede encontrar una manera fácil de revertir la plataforma a
una versión anterior. Desinstale nuevas extensiones, módulos o
complementos Dependiendo del sistema de administración de contenido en
particular, su la
aplicación está utilizando, el nombre exacto de estos componentes será
diferente, pero tienen el mismo propósito en todos los sistemas: mejorar
las capacidades y características de la plataforma más allá de lo que
normalmente es capaz de salir de la caja. Pero
tenga cuidado: tales extensiones pueden, más o menos, tomar el control
total del sistema y realizar prácticamente cualquier cambio, ya sea en
el código PHP, HTML, CSS, JavaScript o la base de datos. Como tal, puede ser conveniente desinstalar cualquier nueva extensión que se haya agregado recientemente. Nuevamente,
busque en Google el nombre de la extensión para la documentación
oficial y la asistencia con este proceso. Verifique los cambios
inesperados en la base de datos. Vale la pena señalar que, incluso si
desinstala una extensión a través del panel de control del CMS, esto no
garantiza que los cambios realizados por la extensión hayan sido
completamente revertido Esto
es particularmente cierto para muchas extensiones de WordPress, a las
que se les da carta blanca dentro de la aplicación, incluidos los
derechos de acceso total a la base de datos. A
menos que el autor de la extensión codifique explícitamente tales
cosas, hay escenarios en los que una extensión puede modificar los
registros de la base de datos que no "pertenecen" a la extensión en sí,
sino que son creadas y administradas por otras extensiones (o incluso
por el propio CMS base). En
esos escenarios, es posible que la extensión no sepa cómo revertir las
alteraciones a los registros de la base de datos, por lo que ignorará
esas cosas durante la desinstalación. El
diagnóstico de tales problemas puede ser complicado, pero personalmente
me he encontrado con estos escenarios varias veces, por lo que su mejor
curso de acción, suponiendo que esté razonablemente convencido de que
una extensión es el culpable probable del Método 405 No permitido, es
abrir la base de datos y busque
manualmente tablas y registros que probablemente fueron modificados por
la extensión. Sobre todo, no tenga miedo de buscar en Google su
problema. Intente
buscar términos específicos relacionados con su problema, como el
nombre del CMS de su aplicación, junto con el Método 405 No permitido. Es
probable que encuentre a alguien que haya experimentado el mismo
problema. Solución de problemas en el lado del servidor Si no está
ejecutando una aplicación de CMS, o incluso si lo está, pero está seguro
de que el Método 405 no permitido no está relacionado con eso:
aquí hay algunos consejos adicionales para ayudarlo a solucionar los
problemas que pueden estar causando el problema en el lado del servidor.
Confirmar la configuración de su servidor. Es probable que su
aplicación se ejecute en un servidor que esté utilizando uno de los dos
programas de servidor web más populares, Apache. o nginx. En el momento de la publicación, ¡estos dos servidores web representan el 84% del software de servidor web del mundo! Por
lo tanto, uno de los primeros pasos que puede tomar para determinar qué
podría estar causando estos códigos de respuesta 405 Método No
Permitido es verificar los archivos de configuración de su software de
servidor web en busca de redireccionamientos involuntarios o solicitar
instrucciones de manejo. Para determinar qué servidor web es su
aplicación Usando querrás buscar un archivo clave. Si su servidor web es Apache, busque un archivo .htaccess dentro del directorio raíz del sistema de archivos de su sitio web. Por
ejemplo, si su aplicación está en un host compartido, es probable que
tenga un nombre de usuario asociado a la cuenta de alojamiento. En
tal caso, el directorio raíz de la aplicación normalmente se encuentra
en la ruta de acceso / home / <usuario> / public_html /, por lo
que el archivo .htaccess se encontrará en
/home/<username>/public_html/.htaccess.Si localizó El
archivo .htaccess luego lo abre en un editor de texto y busca líneas
que usen las directivas RewriteXXX, que son parte del módulo mod_rewrite
en Apache. Cubrir
exactamente cómo funcionan estas reglas está más allá del alcance de
este artículo, sin embargo, el concepto básico es que una directiva
RewriteCond define un patrón basado en texto que se comparará con las
URL ingresadas. Si
un visitante solicita una URL coincidente en el sitio, la directiva
RewriteRule que sigue una o más directivas RewriteCond se usa para
realizar la redirección real de la solicitud a la URL apropiada. Por
ejemplo, aquí hay una RewriteRule simple que coincide con todas las
entradas entrantes. GET
solicita a https://airbrake.io/users/create y responde con un código de
error 405 Method Not Allowed: RewriteEngine onRewriteCond%
{REQUEST_URI} ^ / users / create /?.*$ RewriteCond% {REQUEST_METHOD} =
GETRewriteRule ^ ( .
*) $ http://airbrake.io/users/new$1 [R = 405, L] 12345 RewriteEngine
onRewriteCond% {REQUEST_URI} ^ / users / create /?.*$ RewriteCond%
{REQUEST_METHOD} = GETRewriteRule ^ (. *)
$ http://airbrake.io/users/new$1 [R = 405, L] Observe el indicador R =
405 al final de la RewriteRule, que establece explícitamente que el
código de respuesta debe ser 405, que indica a los agentes de usuario que el recurso existe, pero el método HTTP proporcionado no está permitido. Por
lo tanto, si encuentra directivas extrañas de RewriteCond o RewriteRule
en el archivo .htaccess que no parecen pertenecer, intente comentarlas
temporalmente (usando el prefijo de # carácter) y reinicie su servidor
web para ver si esto resuelve el problema. Por otro lado, si su servidor se está ejecutando en nginx, deberá buscar un archivo de configuración completamente diferente. De
forma predeterminada, este archivo se llama nginx.conf y se encuentra
en uno de los pocos directorios comunes: / usr / local / nginx / conf, /
etc / nginx o / usr / local / etc / nginx. Una
vez localizado, abra nginx.conf en un editor de texto y busque las
directivas que utilizan el indicador de código de respuesta 405. Por
ejemplo, aquí hay una directiva de bloque simple (es decir, un conjunto
de directivas con nombre) que configura un servidor virtual para
airbrake.io y asegura que una solicitud POST a
https://airbrake.io/users/create falla y se responde con un Código de respuesta 405: servidor {escuchar 80; escuchar 443 ssl; nombre_servidor airbrake.io; location / users / create {if ($ request_method = POST) {return 405 https://airbrake.io/users/create$request_uri; }}} 1234567891011 servidor {escuchar 80; escuchar 443 ssl; nombre_servidor airbrake.io; location / users / create {if ($ request_method = POST) {return 405 https://airbrake.io/users/create$request_uri; }}} Eche un vistazo a su archivo nginx.conf para ver si hay directivas o líneas anormales que incluyan la marca 405. Comente
cualquier anomalía antes de reiniciar el servidor para ver si se
resolvió el problema. Las opciones de configuración para cada tipo
diferente de servidor web pueden variar considerablemente, por lo que
solo listaremos algunas de las más populares para darle algunos recursos
para revisar, dependiendo de en
qué tipo de servidor se está ejecutando su aplicación: Apache Nginx IIS
Node.js Apache TomcatLook A través de los registros Todas las
aplicaciones web mantendrán algún tipo de registros del lado del
servidor. Los
registros de aplicaciones suelen ser el historial de lo que hizo la
aplicación, como las páginas solicitadas, los servidores a los que se
conectó, los resultados de la base de datos que proporciona, etc. Los
registros del servidor están relacionados con el hardware real que
ejecuta la aplicación y, a menudo, brindan detalles sobre el estado y el
estado de todos los servicios conectados, o incluso solo del servidor.
Google
"registra [PLATFORM_NAME]" si estás usando un CMS, o "logs
[PROGRAMMING_LANGUAGE]" y "logs [OPERATING_SYSTEM]" si estás ejecutando
una aplicación personalizada, para obtener más información sobre cómo
encontrar los registros en cuestión.Debug Su
código de aplicación o Scripts. Si todo lo demás falla, es posible que
un problema en algún código personalizado dentro de su aplicación esté
causando el problema. Intente
diagnosticar de dónde puede provenir el problema mediante la depuración
manual de su aplicación, junto con el análisis a través de los
registros de la aplicación y del servidor. Lo
ideal es hacer una copia de la aplicación completa a una máquina de
desarrollo local y realizar un proceso de depuración paso a paso, que le
permitirá recrear el escenario exacto en el que ocurrió el Método 405
No Permitido y ver el código de la aplicación en este momento. algo
sale mal. No importa la causa, e incluso si logró solucionarlo esta
vez, la aparición de un problema como el Método 405 no permitido dentro
de su propia aplicación es una buena indicación de que puede querer
implementar una herramienta de gestión de errores...
0 comentarios:
Publicar un comentario