¿Qué narices es esto?
El código 307 Temporary Redirect es el "ve a esa dirección, pero hazlo exactamente como me preguntaste" de HTTP. Es la versión clarificada y mejorada del 302, diseñada para eliminar las ambigüedades sobre qué método HTTP usar en la redirección. Como el GPS que te dice "gira a la derecha" pero especificando si vas caminando, en bici o en coche.
La diferencia clave es que el 307 preserva el método HTTP original. Si haces POST al endpoint original, el navegador hará POST al destino de la redirección. Si haces PUT, seguirá siendo PUT. El 302 era ambiguo: algunos navegadores cambiaban POST a GET, otros no. El 307 dice "haz exactamente lo mismo que ibas a hacer, pero allá".
El 307 aparece típicamente en:
- APIs que mueven endpoints temporalmente
- Balanceadores de carga redirigiendo tráfico
- Servicios en mantenimiento con respaldo temporal
- CDNs redirigiendo a servidores más cercanos
- Migraciones temporales de infraestructura
🎯 Dato curioso
El 307 existe porque el 302 causaba inconsistencias. Los navegadores interpretaban diferente si cambiar POST a GET. El 307 clarifica: "mantén el método original, siempre". Es HTTP siendo específico después de años de confusión.
La belleza del 307 es su predictibilidad. No hay ambigüedad sobre qué pasará: el navegador hará exactamente la misma petición que iba a hacer, pero a la nueva dirección. Es la diferencia entre "ve por ahí" y "ve por ahí, del mismo modo que venías". Perfecto para APIs RESTful donde el método HTTP tiene significado semántico.