Obtén el resultado desde otra URL con GET.
Cuándo usarlo
Redirigir tras el POST de un formulario para que recargar la página no lo vuelva a enviar.
A tener en cuenta
303 es el código correcto para Post/Redirect/Get: después del POST de un formulario, redirige a una página de resultado con 303 para que el navegador la cargue con GET, y así recargar o pulsar el botón Atrás no reenvía el formulario. A diferencia de 302, la especificación garantiza el cambio a GET para cualquier método original, incluidos PUT y DELETE, y el cuerpo de la solicitud se descarta.
Los buscadores tratan 303 como una redirección temporal, pero rara vez aparece en URL rastreables. No se almacena en caché salvo que las cabeceras lo indiquen. En las API, 303 puede llevar a un cliente de una tarea asíncrona terminada a su resultado. fetch lo sigue automáticamente en el modo de redirección predeterminado; response.redirected te indica que hubo una redirección, y response.url da la dirección final después del GET.
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 303 See OtherCómo enviarlo
| Node.js / Express | res.redirect(303, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=303) |
| nginx | return 303 https://example.com$request_uri; |
Cómo comprobarlo
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/