un mensaje 302 encontrado es un HTTP response status code
que indica que el recurso solicitado se ha movido temporalmente a un URI
. Dado que la directiva ubicación o redirección actual puede cambiar en el futuro, un cliente que reciba un código de respuesta 302 Found
debe continuar utilizando el URI original para solicitudes futuras.,
desafortunadamente, puede ser difícil diferenciar entre todos los códigos de respuesta HTTP posibles y determinar la causa exacta de errores como el código302 Found
. Hay docenas de posibles códigos de estado HTTP utilizados para representar la compleja relación entre el cliente, una aplicación web, un servidor web y la multitud de servicios web de terceros que pueden estar en uso, por lo que determinar la causa de un código de estado particular puede ser difícil., En este artículo examinaremos el código 302 Found
observando algunos consejos para solucionar problemas, junto con algunas posibles soluciones para problemas comunes que podrían estar causando este problema dentro de sus propias aplicaciones web, ¡así que vamos a hacerlo!
el problema es del lado del servidor
todos los códigos de estado de respuesta HTTP que están en la categoría 3xx
se consideran redirection messages
. Dichos códigos indican al agente de usuario (es decir, su navegador web) que se requiere una acción adicional para completar la solicitud y acceder al recurso deseado., A diferencia de client error responses
que se encuentra en los códigos 4xx
, como el 404 Not Found Error
que exploramos recientemente, que podría derivarse de un problema del lado del cliente o del servidor, 302 Found
generalmente indica un problema en el servidor web real alojamiento de su aplicación.
dicho esto, la aparición de un 302 Found
no suele ser algo que requiera mucha intervención del usuario. Todos los navegadores modernos detectarán automáticamente el código de respuesta 302 Found
y procesarán automáticamente la acción de redirección temporal., El servidor web que aloja la aplicación normalmente incluirá un encabezado especial Location
como parte de la respuesta que envía al cliente. Este encabezado Location
indica la nueva URL donde se puede encontrar el recurso solicitado. Por ejemplo, si se recibe una solicitud para acceder a la URL , pero el servidor web está configurado para forzar la redirección a una versión segura utilizando
https
, la respuesta del servidor incluirá el encabezado Location: https://airbrake.io
., Esto le indica al navegador que debe redirigir esta solicitud única a a la URL segura de
. En la mayoría de los casos, el navegador detectará automáticamente este código de respuesta
302 Found
, leerá la nueva URL Location
y redirigirá la solicitud a esa nueva ubicación.
sin embargo, es importante tener en cuenta que el código de respuesta 302 Found
se utiliza para fines completamente diferentes que el 301 Moved Permanently
que vimos la semana pasada., En el caso del primero, la redirección debe ser temporal (es decir, solo para la solicitud única actual): el navegador debe «recordar» el URI original y procesar cualquier solicitud futura utilizando ese mismo URI. Sin embargo, con un código 301 Moved Permanently
se le dice al navegador que el URI original ya no es válido, por lo que todas las solicitudes futuras deben usar el nuevo URI proporcionado por el encabezado Location
.,
dado que 302 Found
indica que algo ha salido mal dentro de server
de su aplicación, podemos ignorar en gran medida el lado de las cosas client
. Si está tratando de diagnosticar un problema con su propia aplicación, puede ignorar inmediatamente la mayoría del código y los componentes del lado del cliente, como HTML, hojas de estilo en cascada (CSS), JavaScript del lado del cliente, etc. Esto no se aplica únicamente a los sitios web, tampoco., Muchas aplicaciones de teléfonos inteligentes que tienen una interfaz de usuario de aspecto moderno en realidad funcionan con una aplicación web normal detrás de escena; una que simplemente se oculta al usuario. Si está utilizando una aplicación de este tipo y se produce un 302 Found
, el problema no va a estar relacionado con la aplicación instalada en su teléfono o dispositivo de prueba local. En su lugar, será algo en el lado del servidor, que está realizando la mayor parte de la lógica y el procesamiento detrás de escena, fuera del ámbito de la interfaz local presentada al usuario.,
si su aplicación está generando códigos de respuesta inesperados 302 Found
hay una serie de pasos que puede seguir para diagnosticar el problema.
comience con una copia de seguridad completa de la aplicación
como con cualquier cosa, es mejor haber jugado a lo seguro 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, etc., 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 en un servidor secundario staging
que no esté «en vivo» o no esté activo y disponible para el público. Esto le dará un campo de pruebas limpio con el que probar todas las correcciones potenciales para resolver el problema, sin amenazar la seguridad o la santidad de su aplicación en vivo.
diagnosticar un código de respuesta 302 encontrado
a 302 Found
el código de respuesta indica que se debe acceder temporalmente al recurso solicitado en un URI diferente., Sin embargo, es completamente posible que el servidor esté mal configurado, causando que responda incorrectamente con códigos 302 Found
, en lugar del código estándar y esperado 200 OK
de una solicitud normal y funcional. Por lo tanto, una gran parte del diagnóstico del problema pasará por el proceso de doble comprobación de qué recursos/URL están generando 302 Found
códigos de respuesta y determinar si estos códigos son apropiados o no.,
si su aplicación está respondiendo con códigos 302 Found
que no debería estar emitiendo, este es un problema que muchos otros visitantes también pueden estar experimentando, dificultando drásticamente la capacidad de su aplicación para atender a los usuarios. Repasaremos algunos consejos y trucos para solucionar problemas para ayudarlo a resolver este problema. Si nada aquí funciona, no olvides que Google es tu amigo. Intente buscar términos específicos relacionados con su problema, como el nombre del CMS o el software del servidor web de su aplicación, junto con 302 Found
., Lo más probable es que encuentre a otros que han experimentado este problema y han encontrado una solución.
solución de problemas en el lado del servidor
Aquí hay algunos consejos adicionales para ayudarlo a solucionar lo que podría estar causando que 302 Found
aparezca en el lado del servidor de las cosas:
confirme la configuración del servidor
es probable que su aplicación se ejecute en un servidor que use uno de los dos softwares de servidor web más populares, Apache
o nginx
., En el momento de la publicación, ambos servidores web conforman over 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 302 Found
es verificar los archivos de configuración de su software de servidor web para obtener instrucciones de redirección involuntarias.
para determinar qué servidor web está utilizando su aplicación, deberá buscar un archivo de 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 con la cuenta de alojamiento. En tal caso, el directorio raíz de la aplicación se encuentra típicamente en la ruta de /home/<username>/public_html/
, por lo que el archivo .htaccess
estaría en /home/<username>/public_html/.htaccess
.
Si encuentra el archivo .htaccess
, ábralo en un editor de texto y busque líneas que usen las directivas RewriteXXX
, que forman parte del módulo mod_rewrite
en Apache., Cubrir exactamente cómo funcionan estas reglas está mucho 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 del sitio solicita una URL coincidente, la directiva RewriteRule
que sigue una o más directivas RewriteCond
se utiliza para realizar la redirección real de la solicitud a la URL apropiada.,
por ejemplo, aquí hay una combinación simple RewriteCond
y RewriteRule
que coincide con todas las solicitudes entrantes a example.com
y establece una redirección temporal a ese mismo URI en el dominio temporary-example.com
/p>
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
observe la bandera adicional al final del RewriteRule
, que indica explícitamente que el código de respuesta debe ser302
, indicando a los agentes de usuario (navegadores) que se trata de una redirección temporal., Por lo tanto, si encuentra alguna directiva extraña RewriteCond
o RewriteRule
en el archivo .htaccess
que no parezca pertenecer, intente comentarla temporalmente (usando el prefijo de carácter #
) y reinicie su servidor web para que vea 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 denomina 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 rewrite
que usen la bandera redirect
. Por ejemplo, aquí hay un simple block directive
(I. e., un conjunto de Directivas con nombre) que configura un servidor virtual creando una redirección temporal desde example.com
a las directivas temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
En nginx
son similares a las directivas RewriteCond
y RewriteRule
que se encuentran en Apache
, ya que tienden a contener patrones basados en texto más complejos para la búsqueda., De cualquier manera, busque en su archivo nginx.conf
cualquier directiva rewrite
anormal que incluya la bandera redirect
(la bandera alternativa permanent
emitirá la bandera 301
códigos de respuesta en su lugar). Comente cualquier anomalía antes de reiniciar el servidor para ver si el problema se resolvió.
compruebe si hay software obsoleto
el documento de especificación RFC para HTTP 1.,0 indicó que el propósito de un código de respuesta 302 Found
era indicar que el cliente debe realizar una redirección temporal. Sin embargo, muchos navegadores más nuevos procesarían una solicitud 302
código recibido a través de una solicitud POST
como una solicitud errónea GET
, lo que causó problemas y confusión para algunos softwares de servidores web que intentaban que los navegadores realizaran la tarea adecuada cuando se requería una redirección temporal. Para resolver esto el HTTP 1.,1 documento de especificación RFC agregó los códigos de respuesta 303 See Other
y 307 Temporary Redirect
, que son medios explícitos de manejo POST-to-GET
y respuestas directas temporales, respectivamente.
rastree los registros
casi todas las aplicaciones web mantendrán algún tipo de registros del lado del servidor. Application logs
son típicamente el historial de lo que hizo la aplicación, como qué páginas se solicitaron, a qué servidores se conectó, qué resultados de base de datos proporciona, y así sucesivamente., Server logs
están relacionados con el hardware real que está ejecutando la aplicación, y a menudo proporcionarán detalles sobre el estado y el estado de todos los servicios conectados, o incluso solo el propio servidor. Google «logs» si está utilizando un CMS, o » logs «y» logs » si está ejecutando una aplicación personalizada, para obtener más información sobre cómo encontrar los registros en cuestión.
depure su código de aplicación
Si todo lo demás falla, puede ser 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 de los registros de aplicaciones y servidores. Idealmente, haga una copia de toda la aplicación en una máquina de desarrollo local y realice un proceso de depuración paso a paso, que le permitirá recrear el escenario exacto en el que se produjo 302 Found
y ver el código de la aplicación en el momento en que algo sale mal.,
no importa cuál sea la causa, la aparición de un 302 Found
dentro de su propia aplicación web es una fuerte indicación de que puede necesitar una herramienta de gestión de errores para ayudarlo a detectar automáticamente dichos errores en el futuro. La mejor de estas herramientas puede incluso alertarlo a usted y a su equipo inmediatamente cuando se produce un error. El software de monitoreo de errores de Airbrake proporciona monitoreo de errores en tiempo real e informes automáticos de excepciones para todos sus proyectos de desarrollo., El panel web de última generación de Airbrake garantiza que reciba actualizaciones de estado las 24 horas del día sobre el estado de su aplicación y las tasas de error. No importa en qué esté trabajando, Airbrake se integra fácilmente con todos los lenguajes y marcos más populares. Además, Airbrake facilita la personalización de los parámetros de excepción, al tiempo que le brinda un control completo del sistema de filtro de errores activo, para que solo recopile los errores que más importan.,
echa un vistazo al software de monitoreo de errores de Airbrake hoy y descubre por ti mismo por qué muchos de los mejores equipos de ingeniería del mundo utilizan Airbrake para revolucionar sus prácticas de manejo de excepciones.