Una redirección 307 es un código de estado HTTP/1.1 para redirecciones temporales que preserva estrictamente el método de solicitud original. Si una solicitud POST recibe una respuesta 307, el navegador debe reenviar la solicitud POST a la nueva URL, a diferencia de una 302 que puede convertir la solicitud a GET. Esta preservación del método hace que la 307 sea esencial para endpoints de API y envíos de formularios.
El código de estado 307 fue introducido para resolver la ambigüedad en la especificación 302. Mientras que la 302 se definió como una redirección temporal, muchos navegadores cambiaban las solicitudes POST a GET al seguir una redirección 302. El código 307 requiere explícitamente que el método de solicitud permanezca sin cambios, proporcionando un comportamiento predecible para los desarrolladores. Los libros sobre especificación HTTP en Amazon cubren estas distinciones.
En el acortamiento de URL, las redirecciones 307 son menos comunes que las 301 o 302 porque la mayoría de los clics en URL cortas son solicitudes GET. Sin embargo, la 307 se vuelve relevante cuando las URL cortas se utilizan en contextos de API o cuando el servicio de acortamiento necesita redirigir solicitudes POST sin alterar el método.
La diferencia práctica entre 302 y 307 es principalmente relevante para solicitudes que no son GET. Para la navegación estándar del navegador mediante clics en enlaces, ambas se comportan de manera idéntica. La elección importa al construir APIs o manejar envíos de formularios a través de cadenas de redirección. Los libros sobre diseño de API en Amazon discuten estos patrones.