Repite la misma solicitud en una nueva URL permanente.
Cuándo usarlo
Como 301, pero el método y el cuerpo no deben cambiar.
A tener en cuenta
308 es la versión permanente de 307: los buscadores lo tratan como un 301 y transfieren las señales de posicionamiento, pero el método y el cuerpo no deben cambiar. Úsalo para endpoints de API que reciben POST, PUT o PATCH y se han movido definitivamente. Los navegadores lo almacenan en caché como un 301, así que se aplica la misma precaución: un 308 erróneo puede quedarse en los navegadores de los usuarios durante mucho tiempo.
Next.js responde con 308 a las redirecciones marcadas como permanentes y a la normalización de la barra final, lo que sorprende a quien revisa sus logs. Los clientes muy antiguos, como Internet Explorer 11 en Windows 7, no entienden 308; si todavía los atiendes, usa 301 para las páginas GET normales. Como el 301, un 308 se puede almacenar en caché por defecto, así que añade Cache-Control: max-age mientras sigas probando una redirección nueva.
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 308 Permanent RedirectCómo enviarlo
| Node.js / Express | res.redirect(308, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=308) |
| nginx | return 308 https://example.com$request_uri; |
Cómo comprobarlo
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/