Repite la misma solicitud en otra URL.
Cuándo usarlo
Redirección temporal que debe conservar el método y el cuerpo.
A tener en cuenta
307 garantiza que el cliente repite el mismo método y el mismo cuerpo en la nueva URL, así que un POST sigue siendo un POST. Eso lo hace adecuado para mover temporalmente endpoints de una API. También verás un 307 “interno” en Chrome DevTools cuando HSTS está activo: el navegador cambia http:// por https:// por su cuenta, sin contactar con el servidor, y lo etiqueta como Non-Authoritative Reason: HSTS.
Los buscadores tratan 307 como temporal, igual que 302, y los navegadores no lo almacenan en caché sin cabeceras explícitas. Los cuerpos deben poder reenviarse: fetch con un cuerpo ReadableStream en streaming no puede seguir un 307 y falla. Los navegadores y curl eliminan la cabecera Authorization cuando una redirección pasa a otro host; curl solo la conserva con --location-trusted. Usa curl -L para seguirlo; el método se conserva automáticamente.
Redirección (3xx)
Los códigos 3xx son redirecciones: el cliente tiene que ir a otro sitio, o usar su copia en caché, para completar la solicitud.
Cómo se ve
HTTP/1.1 307 Temporary RedirectCómo enviarlo
| Node.js / Express | res.redirect(307, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=307) |
| nginx | return 307 https://example.com$request_uri; |
Cómo comprobarlo
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/