Respuesta del servidor 307 Temporary Redirect
Definición y propósito del código de estado 307
El código de estado HTTP 307 (Redirección Temporal) indica que el recurso solicitado está temporalmente disponible en una URL diferente. Este código se utiliza para notificar al cliente que debe enviar futuras solicitudes al nuevo URL proporcionado en el encabezado Location
.
Descripción del código de estado 307
El código 307 es parte de la especificación HTTP/1.1. A diferencia de otros códigos de redirección, garantiza que el método HTTP utilizado en la solicitud original se mantendrá en futuras solicitudes. Esto significa que si se realizó una solicitud POST, la solicitud al nuevo URL también será un POST.
Situaciones en las que se utiliza el código 307
- Cuando un recurso está en mantenimiento y se necesita redirigir temporalmente a los usuarios.
- Durante pruebas A/B para evaluar diferentes versiones de una página web.
- Para redirigir a usuarios basándose en su localización geográfica.
Diferencias con otros códigos de redirección (301, 302)
Código | Descripción | Método HTTP |
---|---|---|
301 | Redirección Permanente | Cambia el método a GET |
302 | Redirección Temporal | Puede cambiar el método a GET |
307 | Redirección Temporal | Preserva el método original |
Ejemplos prácticos de uso del código de estado 307
Ejemplo 1: Actualización temporal de URL para mantenimiento
Imaginemos que un sitio web está realizando trabajos de mantenimiento. El administrador puede redirigir temporalmente a los usuarios a una página de mantenimiento utilizando el código 307.
Cómo implementar en el servidor
HTTP/1.1 307 Temporary Redirect Location: http://example.com/mantenimiento
Ejemplo 2: Pruebas A/B
Durante las pruebas A/B, un sitio web puede redirigir temporalmente a un grupo de usuarios a una versión diferente de una página para evaluar su efectividad.
Cómo implementar en el servidor
HTTP/1.1 307 Temporary Redirect Location: http://example.com/version-b
Ejemplo 3: Redirección geolocalizada
Los sitios web pueden redirigir a los usuarios a contenido localizado basado en su ubicación geográfica utilizando el código 307.
Cómo implementar en el servidor
HTTP/1.1 307 Temporary Redirect Location: http://example.com/es
Cómo corregir el error 307 en varios lenguajes de programación
Ejemplo en Python (Flask)
Código que provoca el error 307:
@app.route('/redirect') def redirect_view(): return redirect('http://example.com/nueva-url', code=307)
Formas de corregir
- Asegúrate de que el método HTTP se mantenga como POST si es necesario.
- Verifica la URL de redirección.
Ejemplo en JavaScript (Node.js con Express)
Código que provoca el error 307:
app.get('/redirect', (req, res) => { res.redirect(307, 'http://example.com/nueva-url'); });
Formas de corregir
- Confirma que el método de la solicitud original es compatible con la redirección.
- Revisa que la URL de destino sea válida.
Ejemplo en PHP
Código que provoca el error 307:
header('Location: http://example.com/nueva-url', true, 307); exit();
Formas de corregir
- Verifica que no haya otros encabezados que interfieran.
- Asegúrate de que el método HTTP se mantenga si es necesario.
Errores y problemas relacionados con el código 307
Errores comunes que conducen al error 307
- Redirección a una URL inválida.
- No conservar el método HTTP original cuando es necesario.
Cómo evitar el uso incorrecto del código 307
- Comprender las diferencias entre los códigos de redirección.
- Realizar pruebas exhaustivas de las redirecciones implementadas.
Recomendaciones para el uso del estado 307
Mejores prácticas para implementar redirecciones temporales
- Utiliza el código 307 cuando la redirección es realmente temporal.
- Proporciona información clara en los encabezados de respuesta.
Sugerencias para probar y depurar redirecciones
- Utiliza herramientas de desarrollo del navegador para monitorear redirecciones.
- Realiza pruebas de carga para observar cómo se comportan las redirecciones bajo estrés.