O que são os códigos de redirecionamento?

Prévia grátis 5 min de leitura

A placa de desvio da web

Imagine que você vai ao seu restaurante favorito, mas há uma placa na porta: "Nós mudamos para a Rua Principal, 123." Você não desiste: apenas segue o novo endereço. É isso que um redirecionamento 3xx faz na web.

Quando um servidor responde com um código de status 3xx, ele está dizendo ao cliente: "O que você procura não está aqui: mas eu vou te dizer onde encontrar." O cliente (geralmente um navegador) então segue automaticamente a nova localização.


Como os redirecionamentos funcionam

Uma resposta de redirecionamento tem duas partes essenciais:

  1. Um código de status 3xx: diz ao cliente que é um redirecionamento
  2. Um header Location: diz ao cliente para onde ir
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/new-page

O navegador lê o header Location e automaticamente faz uma nova requisição para aquela URL. O usuário geralmente nem percebe: acontece em milissegundos.


O fluxo do redirecionamento

Veja o que acontece passo a passo:

Cliente                         Servidor
  |                               |
  |  GET /old-page HTTP/1.1       |
  |------------------------------>|
  |                               |
  |  301 Moved Permanently        |
  |  Location: /new-page          |
  |<------------------------------|
  |                               |
  |  GET /new-page HTTP/1.1       |
  |------------------------------>|
  |                               |
  |  200 OK                       |
  |  (conteúdo real)              |
  |<------------------------------|

Note: o cliente faz duas requisições. A primeira recebe o redirecionamento, a segunda recebe o conteúdo real. Por isso redirecionamentos excessivos deixam o carregamento da página mais lento.


A família 3xx em resumo

Nem todos os redirecionamentos são iguais. A faixa 3xx inclui vários códigos, cada um com comportamento diferente:

Código Nome Comportamento Principal
301 Moved Permanently Redirecionamento permanente: navegadores fazem cache
302 Found Redirecionamento temporário: verifique novamente da próxima vez
303 See Other Redirecionamento após POST: sempre use GET
304 Not Modified Não é bem um redirecionamento: use sua cópia em cache
307 Temporary Redirect Como 302, mas preserva o método HTTP
308 Permanent Redirect Como 301, mas preserva o método HTTP

Vamos cobrir cada um em detalhes ao longo deste curso.


Por que os redirecionamentos importam

Redirecionamentos estão em toda parte no desenvolvimento web. Aqui estão os casos de uso mais comuns:

Mover conteúdo: Quando você reestrutura um site, URLs antigas precisam apontar para as novas. Sem redirecionamentos, usuários e motores de busca chegariam em becos sem saída.

Forçar HTTPS: A maioria dos sites redireciona requisições http:// para https:// automaticamente. Isso é um redirecionamento.

Após envio de formulários: Quando um usuário envia um formulário (POST), você o redireciona para uma página de confirmação (GET). Isso previne envios duplicados se ele atualizar a página.

Fluxos de autenticação: Após fazer login, usuários são redirecionados para o dashboard. Após fazer logout, são redirecionados para a página inicial.

Mudança de domínio: Quando uma empresa faz rebranding, dominio-antigo.com redireciona para novo-dominio.com.


Cadeias e loops de redirecionamento

Dois problemas podem surgir com redirecionamentos:

Cadeias de redirecionamento acontecem quando um redirecionamento leva a outro, que leva a outro:

/pagina-a → /pagina-b → /pagina-c → /pagina-d (destino final)

Cada salto adiciona latência. Motores de busca podem parar de seguir após alguns saltos. Mantenha as cadeias o mais curtas possível: idealmente apenas um redirecionamento.

Loops de redirecionamento acontecem quando redirecionamentos formam um círculo:

/pagina-a → /pagina-b → /pagina-a → /pagina-b → ...

Navegadores detectam isso e mostram um erro como "Esta página não está funcionando: muitos redirecionamentos." Esse é um bug comum em aplicações mal configuradas.


Temporário vs. permanente

A distinção mais fundamental nos códigos 3xx é se um redirecionamento é temporário ou permanente:

Aspecto Temporário (302, 307) Permanente (301, 308)
Significado "Use esta outra URL por enquanto" "Use esta outra URL para sempre"
Cache Navegador verifica a URL original cada vez Navegador lembra e pula a URL original
SEO Motores de busca continuam indexando a URL original Motores de busca transferem ranking para a nova URL
Caso de uso Manutenção, testes A/B, feature flags Reestruturação de URLs, migração de domínio

Escolher o tipo errado pode causar problemas reais: um redirecionamento permanente quando você queria temporário pode ser muito difícil de desfazer, já que navegadores fazem cache agressivamente.


Resumo

Conceito Ponto Chave
Códigos 3xx Dizem ao cliente para procurar o recurso em outro lugar
Header Location Contém a URL que o cliente deve seguir
Fluxo de redirecionamento Cliente faz duas requisições: uma recebe o redirecionamento, outra recebe o conteúdo
Temporário vs. permanente Temporário: verifique novamente. Permanente: atualize seus registros
Cadeias de redirecionamento Múltiplos saltos: mantenha-os curtos
Loops de redirecionamento Redirecionamentos circulares: um bug que navegadores detectam e reportam
Usos comuns Forçar HTTPS, redirecionamento pós-formulário, reestruturação de URLs, fluxos de autenticação
Aula 1 de 7 · grátis

Continue com a aula 2

301 Moved permanently

Apresenta o 301 Moved Permanently, o cache agressivo, a transferência de SEO e a troca de POST para GET.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...