sábado, 10 de noviembre de 2018

Error 405 Not Allowed

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...
Share:

0 comentarios:

Publicar un comentario