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.