DNS RobotDNS Propagation Checker
InícioDNSWHOISIP LookupSSL
DNS RobotDNS Propagation Checker

Kit de ferramentas DNS de última geração

Política de PrivacidadeTermos de ServiçoSobre NósBlogContato

Ferramentas DNS

Consulta DNSDomínio para IPConsulta NSConsulta MXConsulta CNAMEVer tudo

Ferramentas de E-mail

Verificador SPFVerificador DMARCVerificador DKIMTeste SMTPAnalisador de Cabeçalho de E-mailVer tudo

Ferramentas de Sites

Consulta WHOISDisponibilidade de DomínioLocalizador de SubdomíniosDetector de CMSAnalisador de LinksVer tudo

Ferramentas de Rede

Ferramenta PingTracerouteVerificador de PortasVerificador de Cabeçalhos HTTPVerificador de Certificado SSLVer tudo

Ferramentas de IP

Consulta de IPQual é Meu IPVerificador de Lista Negra de IPIP para HostnameConsulta ASNVer tudo

Ferramentas Úteis

Leitor de QR CodeGerador de QR CodeUPI QR Code GeneratorWiFi QR Code GeneratorTradutor de Código MorseVer tudo
© 2026 DNS Robot. Desenvolvido por ❤ Shaik Brothers
Todos os sistemas em operação
Made with
Início/Blog/Código de Status 302 (HTTP 302 Found): O Que Significa e Quando Usar

Código de Status 302 (HTTP 302 Found): O Que Significa e Quando Usar

Shaik Vahid26 de abr. de 20269 min de leitura
Infográfico do código de status HTTP 302 mostrando o fluxo de redirecionamento temporário e a comparação 301 vs 302 vs 307
Infográfico do código de status HTTP 302 mostrando o fluxo de redirecionamento temporário e a comparação 301 vs 302 vs 307

Ponto-Chave

O código de status 302 (HTTP 302 Found) é um redirecionamento temporário: o recurso solicitado está temporariamente em outra URL indicada pelo cabeçalho Location, mas a URL original deve continuar a ser usada em requisições futuras. Use 302 para redirecionamentos de curto prazo (login, testes A/B, manutenção) e 301 apenas quando a mudança for permanente. Para preservar requisições POST após o redirecionamento, use 307 em vez de 302.

Advertisement

O Que É o Código de Status 302?

O código de status 302 — oficialmente chamado de 302 Found — é um código de resposta HTTP que informa ao cliente (geralmente um navegador) que o recurso solicitado foi movido temporariamente para outra URL. A nova URL é fornecida no cabeçalho Location da resposta, e o cliente deve buscar o recurso a partir dali apenas para esta requisição.

Como a mudança é temporária, o cliente deve continuar a usar a URL original em requisições futuras. Mecanismos de busca, navegadores e favoritos não devem substituir a URL original pelo destino do redirecionamento. Esta é a principal diferença comportamental entre o HTTP 302 e o 301 Moved Permanently.

O código 302 faz parte da classe 3xx de redirecionamento dos códigos de status HTTP, definida na RFC 9110. Apesar do nome histórico 'Found', o corpo da resposta quase nunca é usado — navegadores modernos seguem imediatamente o cabeçalho Location sem renderizá-lo.

Nota

Definição rápida: Uma resposta 302 significa 'o recurso que você pediu está temporariamente aqui — busque-o pela URL no cabeçalho Location, mas continue usando a URL original na próxima vez.'

Anatomia de uma Resposta 302

Uma resposta com código de status 302 sempre contém dois elementos essenciais: a linha de status e um cabeçalho Location apontando para a nova URL. Sem um cabeçalho Location válido, o cliente não consegue seguir o redirecionamento.

  • Linha de status — HTTP/1.1 302 Found (ou HTTP/2 302 em HTTP/2)

  • Cabeçalho Location — a URL de destino que o cliente deve seguir (obrigatório)

  • Cache-Control — geralmente no-cache para que os navegadores não armazenem o destino do redirecionamento permanentemente

  • Corpo — normalmente vazio, embora servidores possam incluir uma pequena página HTML para clientes legados (<html><body><a href="...">Clique aqui</a></body></html>)

http
HTTP/1.1 302 Found
Location: https://www.example.com/new-page
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Cache-Control: no-cache, no-store
Date: Mon, 27 Apr 2026 14:00:00 GMT

Dica

Sempre defina Cache-Control: no-cache em uma resposta 302. Sem isso, alguns navegadores podem armazenar o redirecionamento durante a sessão e não verificar mais a URL original — anulando a parte 'temporária' do redirecionamento.

O cabeçalho Location pode ser uma URL absoluta (https://example.com/path) ou relativa ao caminho (/path). Clientes HTTP modernos aceitam ambas, embora URLs absolutas sejam recomendadas por clareza.

302 vs 301 vs 307 vs 308: Qual Redirecionamento Usar?

O HTTP define cinco códigos comuns de redirecionamento, e escolher o correto importa para cache, SEO e preservação do método de requisição. Use esta tabela como guia de decisão:

CódigoPermanênciaMétodo Preservado?Cacheado pelo Navegador?Melhor Para
301 Moved PermanentlyPermanentePode mudar POST→GETSim (agressivamente)Mudanças permanentes de URL, migração de domínio
302 FoundTemporárioFrequentemente muda POST→GETNãoFluxos de login, testes A/B, manutenção
303 See OtherTemporárioSempre muda para GETNãoPadrão POST/Redirect/GET após envio de formulário
307 Temporary RedirectTemporárioSim — preservadoNãoRedirecionamentos temporários que devem manter POST/PUT
308 Permanent RedirectPermanenteSim — preservadoSimRedirecionamentos permanentes que devem manter POST/PUT

Aviso

Nunca use 302 para uma mudança permanente (ex.: troca de domínio). Mecanismos de busca tratam 302 como temporário e não transferem sinais de ranking para a nova URL. Para mudanças permanentes, sempre use 301 ou 308.

A recomendação moderna: se você precisa de um redirecionamento temporário e quer ser inequívoco quanto ao tratamento do método, use 307 em vez de 302. O código 307 foi adicionado no HTTP/1.1 justamente porque navegadores historicamente violavam a especificação ao trocar POST por GET em um 302 — e esse comportamento incorreto se tornou o padrão de fato.

Quando Usar um Redirecionamento 302?

Use o código de status 302 sempre que o redirecionamento for genuinamente temporário — ou seja, quando você espera remover ou alterar o destino no futuro. Casos de uso legítimos comuns incluem:

  • Redirecionamentos de login — Enviar um usuário não autenticado de /dashboard para /login e de volta após o login

  • Testes A/B — Direcionar 50% dos usuários para uma variante sem alterar a URL canônica

  • Páginas de manutenção — Redirecionar todo o tráfego para /maintenance enquanto você corrige o servidor

  • Roteamento por geolocalização — Enviar visitantes de / para /br ou /us com base no país, mantendo / como entrada canônica

  • Redirecionamentos para mobile — Levar usuários de smartphone de example.com para m.example.com (embora design responsivo seja preferível hoje)

  • Páginas de produtos sem estoque — Levar compradores para a categoria até o produto voltar

  • URLs promocionais de curta duração — /black-friday redirecionando para a campanha apenas durante a promoção

Se algum desses casos se tornar permanente, mude para 301. Mecanismos de busca esperam vários meses antes de tratar um 302 antigo como 301, então deixar uma mudança permanente em 302 custa sinais de ranking durante esse período.

Advertisement

Como Enviar um Código de Status 302

A maioria dos servidores e frameworks tem helpers para enviar um redirecionamento 302. Abaixo estão os padrões mais comuns. Cada um envia HTTP 302 Found com um cabeçalho Location — as duas únicas coisas que uma resposta 302 estritamente precisa.

Nginx

No Nginx, use a diretiva return com o código 302 (o padrão se você omitir o código também é 302):

nginx
server {
    listen 80;
    server_name example.com;

    # Redirecionamento temporário (302 Found)
    location /old-page {
        return 302 https://example.com/new-page;
    }
}

Apache (.htaccess)

No Apache, use Redirect com o código 302 ou RewriteRule com a flag [R=302,L]:

apache
# Redirecionamento temporário simples
Redirect 302 /old-page https://example.com/new-page

# Ou com mod_rewrite para correspondência por padrão
RewriteEngine On
RewriteRule ^maintenance$ /maintenance.html [R=302,L]

Node.js (Express)

O método res.redirect() do Express usa 302 por padrão quando nenhum código é informado:

javascript
// Redirecionamento temporário (302 Found por padrão)
app.get('/dashboard', (req, res) => {
  if (!req.user) {
    return res.redirect('/login') // envia 302
  }
  // ...renderiza dashboard
})

// Ou seja explícito:
res.redirect(302, '/login')

Dica

Se precisar preservar o método (POST, PUT, DELETE), use res.redirect(307, '/new-url') em vez de 302. Os navegadores rebaixam um POST com 302 para GET — o 307 mantém o método original.

Como Testar um Código de Status 302

Após implementar um redirecionamento 302, verifique se ele funciona corretamente. A forma mais rápida é o curl no terminal — ele mostra o código de status exato e o cabeçalho Location sem interferência de cache do navegador.

bash
# Mostrar apenas os cabeçalhos da resposta (-I) sem seguir o redirecionamento
curl -I https://example.com/old-page

# Saída esperada:
# HTTP/2 302
# location: https://example.com/new-page
# cache-control: no-cache
# date: Mon, 27 Apr 2026 14:00:00 GMT

# Seguir toda a cadeia (-L) e mostrar cada salto
curl -ILs https://example.com/old-page | grep -i 'HTTP/\|location:'

Nota

O DevTools do navegador também funciona: abra a aba Network, ative Preserve log e carregue a URL. Cada redirecionamento aparece como uma entrada separada com seu código de status e cabeçalho Location. É a forma mais fácil de depurar cadeias de múltiplos saltos.

Se você não tem acesso ao terminal, use o Verificador de Redirecionamento gratuito do DNS Robot para rastrear toda a cadeia a partir de um servidor neutro, ou o Verificador de HTTP Headers para inspecionar os cabeçalhos brutos — ambos ignoram o cache do seu navegador.

Redirecionamentos 302 e SEO

Um código de status 302 diz aos mecanismos de busca: 'esta mudança é temporária, mantenha a URL original no índice.' Isso tem consequências diretas para os sinais de ranking.

Segundo o Google Search Central, um 302 não transfere os sinais de ranking da URL original para o destino do redirecionamento da forma como um 301 faz. A URL original permanece canônica. O Google ainda pode indexar a página de destino se outros sinais de canonicalização (links internos, sitemap, hreflang) apontarem para ela — mas o próprio 302 não é um sinal canônico.

  • Use 301 para mudanças permanentes — Trocas de domínio, mudanças na estrutura de URL, consolidação de páginas

  • Use 302 para mudanças temporárias — Login, testes A/B, manutenção, roteamento regional

  • Não deixe uma mudança permanente em 302 — O Google leva meses para tratar um 302 antigo como 301, custando equity de ranking

  • Evite cadeias — A → 302 → B → 302 → C dilui sinais e atrasa o carregamento. Cada salto adiciona latência

Aviso

Se você vê redirecionamentos 302 em URLs que deveriam ranquear (homepage, landing pages principais), audite-os com o Verificador de Redirecionamento do DNS Robot. Um 302 mal configurado em uma mudança permanente pode matar rankings silenciosamente.

Por Que um 302 Transforma POST em GET

Este é o comportamento mais surpreendente do HTTP 302. A RFC original dizia que clientes deveriam preservar o método ao seguir um redirecionamento. Mas os primeiros navegadores — Mosaic, Netscape, IE — todos mudaram POST para GET em um 302, e esse comportamento incorreto se tornou tão difundido que foi padronizado no WHATWG Fetch Standard.

Hoje, quando um navegador envia um POST /login e o servidor responde com 302 Found, o navegador automaticamente emite um GET /next-page no destino. Os dados do formulário são descartados. Isso raramente é o que o desenvolvedor pretendia.

http
# O que você envia:
POST /submit-form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

name=Alice&email=alice@example.com

# Servidor responde com 302:
HTTP/1.1 302 Found
Location: /thank-you

# Navegador segue com GET (dados do formulário descartados!):
GET /thank-you HTTP/1.1
Host: example.com

Dica

Regra prática: GET → 302 está ok, POST → 302 é arriscado. Para envios de formulário, prefira 303 See Other (GET intencional na próxima página) ou 307 Temporary Redirect (mantém o POST).

Se o redirecionamento precisa preservar o método original (POST continua POST, PUT continua PUT), use 307 Temporary Redirect em vez de 302. Se quiser intencionalmente descartar o corpo e mudar para GET — o clássico padrão POST/Redirect/GET — use 303 See Other. Ambos são inequívocos; o 302 não é.

Advertisement

Erros Comuns de 302 e Como Corrigir

Quando o HTTP 302 dá errado, geralmente aparece como um destes sintomas. A maioria tem soluções simples:

  • `Recebendo 302 em vez de 200` — O servidor está redirecionando quando não deveria. Verifique .htaccess, configuração do Nginx ou middleware do framework

  • `302 sem cabeçalho Location` — Resposta inválida. Os navegadores mostrarão página em branco. Garanta que o código define o cabeçalho Location antes de enviar o status

  • `302 redirecionando para si mesmo` — Loop de redirecionamento. A URL Location é igual à URL da requisição. Verifique a regra por condições ausentes

  • `302 descartando dados de formulário` — POST → 302 → GET descarta o corpo. Mude para 307 Temporary Redirect para preservar o POST

  • `302 cacheado pelo navegador` — Servidor com bug definiu Cache-Control: max-age=... no redirecionamento. Adicione Cache-Control: no-cache e limpe o cache do navegador

  • `302 em produção mas não local` — Geralmente um CDN ou load balancer adicionando redirecionamentos. Teste direto no origin para isolar

Nota

Se um 302 está acontecendo inesperadamente, o passo de debug mais rápido é curl -I <url> direto no servidor de origem (ignorando o CDN). Se o origin retorna 200, o 302 está sendo injetado pelo CDN, proxy ou load balancer.

Loops de Redirecionamento 302: Como Diagnosticar

Um loop de redirecionamento ocorre quando a URL A retorna 302 para a URL B, e a URL B retorna 302 de volta para A. Após 20 saltos (no Chrome e Firefox), o navegador mostra ERR_TOO_MANY_REDIRECTS e desiste.

A causa mais comum é um conflito SSL/HTTPS entre um CDN (como Cloudflare) e o servidor de origem: o CDN se conecta ao origin via HTTP, o origin redireciona HTTP→HTTPS, o CDN remove o HTTPS e se conecta via HTTP de novo — loop infinito.

bash
# Rastrear toda a cadeia (limite de 10 saltos para evitar loops infinitos)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'

# Exemplo de loop:
# HTTP/2 302
# location: http://example.com/
# HTTP/1.1 302 Found
# Location: https://example.com/
# HTTP/2 302
# location: http://example.com/  <-- loop confirmado

Se você vê duas URLs alternando nos cabeçalhos Location, confirmou um loop de 302. Para um guia completo, veja nosso post ERR_TOO_MANY_REDIRECTS. O Verificador de Redirecionamento do DNS Robot rastreia toda a cadeia a partir de uma localização neutra e para no ponto do loop.

Boas Práticas para o Código de Status 302

Enviar 302 Found corretamente evita a maioria dos bugs que desenvolvedores enfrentam ao implementar redirecionamentos:

  • Sempre inclua um cabeçalho Location — Um 302 sem Location é inválido e renderiza como página em branco

  • Sempre defina Cache-Control: no-cache — Caso contrário, alguns navegadores cacheiam o redirecionamento durante a sessão, quebrando o contrato 'temporário'

  • Use URLs absolutas em Location — https://example.com/new é inequívoco; /new funciona, mas pode quebrar atrás de proxies que mudam o host

  • Mantenha redirecionamentos em um único salto — A → 302 → B está bem; A → 302 → B → 302 → C atrasa o carregamento e dilui ranking

  • Não redirecione de POST para outra página com 302 — Use 303 (GET intencional) ou 307 (preserva POST)

  • Audite redirecionamentos mensalmente — Redirecionamentos temporários antigos costumam sobreviver ao motivo. Verifique com Redirect Checker

  • Mude para 301 quando a mudança virar permanente — Não deixe uma mudança permanente em 302 por mais de algumas semanas

Comportamento de Navegadores e Cache

Diferentes navegadores e intermediários tratam o HTTP 302 de forma um pouco diferente. Conhecer as peculiaridades poupa tempo de debug:

ClienteComportamento Padrão no 302Cache Padrão
Chrome / EdgeSegue automaticamente, muda POST→GETNão cacheia, exceto se cabeçalhos disserem
FirefoxSegue automaticamente, muda POST→GETNão cacheia, exceto se cabeçalhos disserem
SafariSegue automaticamente, muda POST→GETCache de redirecionamentos um pouco mais agressivo
curl (padrão)NÃO segue — mostra 302 + LocationSem cache
curl -LSegue até --max-redirs (padrão 50)Sem cache
wget (padrão)Segue até --max-redirect=20Sem cache
GooglebotSegue, trata como sinal temporárioRecrawl da URL original

Para verificar comportamentos extremos (métodos POST, loops infinitos, presença de cabeçalhos), o Verificador de HTTP Headers do DNS Robot mostra a resposta bruta sem reescrita do método pelo navegador. Leia mais sobre redirecionamentos temporários na documentação MDN e na especificação RFC 9110.

Advertisement

Rastreie qualquer cadeia de redirecionamento em segundos

Use o Verificador de Redirecionamento gratuito do DNS Robot para inspecionar cada salto de uma cadeia — veja códigos de status, cabeçalhos Location e o destino final a partir de um servidor neutro (sem cache de navegador).

Testar Verificador de Redirecionamento

Advertisement

Perguntas Frequentes

O código de status 302 (HTTP 302 Found) significa que o recurso solicitado está temporariamente em outra URL informada no cabeçalho Location da resposta. O cliente deve seguir o redirecionamento para esta requisição, mas continuar usando a URL original em requisições futuras. É a contraparte temporária do 301 Moved Permanently.

Ferramentas Relacionadas

Redirect CheckerHTTP Headers CheckSSL Certificate CheckDNS Lookup

Artigos Relacionados

ERR_TOO_MANY_REDIRECTS: Como Corrigir (Todos os Navegadores)Erro HTTP 503 Service Unavailable: Causas e Como ResolverErro HTTP 500 Internal Server Error: Causas e Como ResolverErro 403 Forbidden: O Que Significa e Como Corrigir

Índice

  • O Que É o Código de Status 302?
  • Anatomia de uma Resposta 302
  • 302 vs 301 vs 307 vs 308: Qual Redirecionamento Usar?
  • Quando Usar um Redirecionamento 302?
  • Como Enviar um Código de Status 302
  • Como Testar um Código de Status 302
  • Redirecionamentos 302 e SEO
  • Por Que um 302 Transforma POST em GET
  • Erros Comuns de 302 e Como Corrigir
  • Loops de Redirecionamento 302: Como Diagnosticar
  • Boas Práticas para o Código de Status 302
  • Comportamento de Navegadores e Cache
  • Perguntas Frequentes