HTTP 308 Permanent Redirect

Um redirecionamento permanente com regras estritas: a URL mudou definitivamente, e a requisição deve ser repetida sem alterações.

O que significa o HTTP 308

HTTP 308 Permanent Redirect é o irmão do 301 que preserva o método. O recurso mudou permanentemente para a URL em Location, e os clientes devem repetir a requisição lá sem mudar o método ou descartar o corpo.

Importa mais para APIs: se um endpoint que aceita POST ou PUT mudar permanentemente, um 301 poderia fazer clientes antigos tentarem novamente silenciosamente com GET e perder o payload. Um 308 mantém a gravação intacta.

Causas comuns de respostas 308

  • Um endpoint de API que aceita gravações mudou permanentemente para um novo caminho ou domínio.
  • Canonicalização em nível de infraestrutura (por exemplo, Cloudflare ou um load balancer) configurada para preservar métodos.
  • Um framework que usa 308 por padrão para normalização de barra final (Next.js, alguns CDNs).

Boas práticas para desenvolvedores

  • Escolha 308 em vez de 301 sempre que requisições não-GET puderem atingir a URL antiga.
  • Assim como com 301, redirecione em um único salto e mantenha o redirecionamento em vigor a longo prazo.
  • Verifique se clientes de API antigos tratam 308 — bibliotecas HTTP muito antigas podem não segui-lo automaticamente.

Exemplo de resposta

HTTP/1.1 308 Permanent Redirect
Location: https://api.example.com/v2/upload

Impacto no SEO

Para mecanismos de busca, um 308 é equivalente a um 301: uma mudança permanente que transfere sinais de indexação e ranking para a URL de destino. Escolha entre eles com base nos clientes, não no SEO.

Perguntas frequentes

O 308 é igual ao 301 para SEO?

Sim — o Google trata ambos como uma mudança permanente e transfere os sinais para a nova URL.

Quando o 308 é necessário em vez do 301?

Quando as requisições redirecionadas podem ser POST, PUT, PATCH ou DELETE e o método e o corpo devem ser preservados.

Todos os navegadores suportam o 308?

Todos os navegadores modernos suportam. Apenas clientes muito antigos (por exemplo, IE na era do Windows 7, bibliotecas HTTP antigas) tinham lacunas.