HTTP 307 Temporary Redirect
Una redirección temporal estricta: ve a la otra URL, y repite la solicitud exactamente como la enviaste.
Qué significa HTTP 307
HTTP 307 Temporary Redirect funciona como 302 con una garantía añadida: el cliente debe repetir la solicitud a la nueva URL con el mismo método y cuerpo. Un POST redirigido sigue siendo un POST — nada se convierte silenciosamente en GET.
Los navegadores también generan 307 internamente: cuando un sitio está en la lista de precarga HSTS, el navegador actualiza http:// a https:// por sí mismo y muestra “307 Internal Redirect” en DevTools sin ninguna solicitud de red.
Causas comunes de las respuestas 307
- Una API redirige temporalmente una solicitud POST/PUT a otro endpoint.
- HSTS: el navegador actualiza http:// a https:// internamente (se muestra como 307 en DevTools).
- Ventanas de reducción de carga o mantenimiento que redirigen las escrituras a un endpoint de respaldo.
Buenas prácticas para desarrolladores
- Usa 307 siempre que una solicitud redirigida tenga un cuerpo que deba sobrevivir al salto.
- Para traslados permanentes que conservan el método, usa 308 en su lugar.
- Recuerda que los clientes reenvían el cuerpo completo — evita 307 para cargas muy grandes si puedes apuntar a los clientes directamente a la URL correcta desde el principio.
Ejemplo de respuesta
HTTP/1.1 307 Temporary Redirect Location: https://api.example.com/v2/orders Retry-After: 0
Preguntas frecuentes
¿Cuál es la diferencia entre 302 y 307?
Ambos son temporales, pero 307 prohíbe cambiar el método de la solicitud — un POST se repite como POST. Con 302, los navegadores históricamente cambian a GET.
¿Por qué DevTools muestra “307 Internal Redirect”?
El navegador actualizó la solicitud a HTTPS por sí mismo (HSTS) sin contactar al servidor. Se muestra como un 307 sintético.
¿Existe una versión permanente de 307?
Sí — 308 Permanent Redirect: la misma regla de conservación de método, pero las cachés y los motores de búsqueda tratan el traslado como permanente.