308 Permanent Redirect

Repita a mesma requisição em uma nova URL permanente.

Quando usar

Como o 301, mas o método e o corpo não podem mudar.

Bom saber

O 308 é a versão permanente do 307: os mecanismos de busca o tratam como 301 e transferem os sinais de ranqueamento, mas o método e o corpo não podem mudar. Use-o para endpoints de API que recebem POST, PUT ou PATCH e mudaram de vez. Os navegadores o armazenam em cache como o 301, então vale a mesma cautela: um 308 errado pode ficar preso nos navegadores dos usuários por muito tempo.

O Next.js responde com 308 para redirecionamentos marcados como permanentes e para a normalização da barra final, o que surpreende quem lê os logs. Clientes muito antigos, como o Internet Explorer 11 no Windows 7, não entendem o 308; se você ainda os atende, use 301 para páginas GET simples. Como o 301, um 308 é cacheável por padrão, então adicione Cache-Control: max-age enquanto ainda estiver testando um novo redirecionamento.

Redirecionamento (3xx)

Os códigos 3xx são redirecionamentos: o cliente precisa ir para outro lugar, ou usar a cópia em cache, para concluir a requisição.

Como fica

HTTP/1.1 308 Permanent Redirect

Como enviar

Node.js / Expressres.redirect(308, '/new-url')
Python / Flaskreturn redirect('/new-url', code=308)
nginxreturn 308 https://example.com$request_uri;

Como verificar

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de status HTTP