Um 302 mensagem é uma HTTP response status code
indicando que o recurso solicitado foi temporariamente movido para um outro URI
. Uma vez que a diretriz de localização ou redirecionamento atual pode ser alterada no futuro, um cliente que recebe um 302 Found
código de resposta deve continuar a usar o URI original para futuras solicitações.,
Infelizmente, pode ser difícil diferenciar entre todos os possíveis códigos de resposta HTTP e determinar a exata causa de erros como o 302 Found
código. Existem dezenas de possíveis códigos de status HTTP usados para representar a complexa relação entre o cliente, uma aplicação web, um servidor web, e a infinidade de serviços web de terceiros que podem estar em uso, de modo que determinar a causa de um código de status particular pode ser um desafio., Neste artigo vamos examinar o 302 Found
código olhando algumas dicas de solução de problemas, juntamente com algumas possíveis correções para problemas comuns que podem estar causando este problema dentro de seus próprios aplicativos da web, então vamos a ele!
o problema é o lado do servidor
todos os códigos de Estado de resposta HTTP que estão no 3xx
categoria são considerados redirection messages
. Tais códigos indicam ao agente de usuário (ou seja, seu navegador web) que uma ação adicional é necessária para completar o pedido e acessar o recurso desejado., Ao contrário de client error responses
encontrado no 4xx
códigos, como o 404 Not Found Error
exploramos recentemente, o que poderia decorrer de um cliente – ou o problema do lado do servidor, 302 Found
código geralmente indica um problema no próprio servidor web que hospeda o aplicativo.
dito isto, a aparência de um id
geralmente não é algo que requer muita intervenção do Usuário. Todos os navegadores modernos irão detectar automaticamente o302 Found
código de resposta e processar a ação de redirecionamento temporariamente automaticamente., O servidor web que hospedou a aplicação normalmente inclui um cabeçalho especial
como parte da resposta que envia ao cliente. Este cabeçalhoLocation
indica o novo URL onde o recurso pedido pode ser encontrado. Por exemplo, se um pedido chega ao acessar a URL, mas o servidor web está configurado para forçar o redirecionamento para uma versão segura usando
https
, a resposta do servidor vai incluir oLocation: https://airbrake.io
cabeçalho., Isto diz ao navegador que ele deve redirecionar este único pedido parapara o URL seguro de
. Na maioria dos casos, o navegador irá detectar automaticamente este
302 Found
código de resposta, ler o novoLocation
URL, e redirecionar o pedido para esse novo local.
no Entanto, é importante ter em mente que o 302 Found
código de resposta é usado para fins totalmente distintos do que o 301 Moved Permanently
vimos na semana passada., No caso do primeiro, o redirecionamento deve ser temporário (ou seja, apenas para o atual, único pedido) — o navegador deve “lembrar” o URI original e processar quaisquer pedidos futuros usando esse mesmo URI. No entanto, com um código 301 Moved Permanently
o navegador está sendo dito que o URI original não é mais válido, então todos os pedidos futuros devem usar o novo URI fornecido pelo cabeçalho Location
.,
Desde 302 Found
indica que algo está errado dentro de server
do seu aplicativo, nós podemos em grande parte desconsiderar o client
lado das coisas. Se você está tentando diagnosticar um problema com sua própria aplicação, você pode imediatamente ignorar a maioria dos códigos e componentes do lado do cliente, tais como HTML, cascading style sheets (CSS), Javascript do lado do cliente, e assim por diante. Isto também não se aplica apenas a Web sites., Muitos aplicativos de Smart phone que têm uma interface de usuário de aparência moderna são realmente alimentados por uma aplicação web normal nos bastidores; um que é simplesmente escondido do Usuário. Se você está usando tal aplicação e um 302 Found
ocorre, o problema não vai ser relacionado com o aplicativo instalado em seu telefone ou dispositivo de teste local. Em vez disso, será algo do lado do servidor, que está executando a maior parte da lógica e processamento nos bastidores, fora do âmbito da interface local apresentada ao usuário.,
Se sua aplicação está gerando inesperados 302 Found
códigos de resposta há um número de passos que você pode tomar para diagnosticar o problema.
comece com um Backup de Aplicação completo
como com qualquer coisa, é melhor ter jogado em segurança no início do que estragar algo e vir a lamentá-lo mais tarde na estrada. Como tal, é fundamental que você execute um backup completo de sua aplicação, Banco de dados, e assim por diante, antes de tentar quaisquer correções ou alterações ao sistema., Ainda melhor, se você tiver a capacidade, criar uma cópia completa da aplicação em um secundário staging
servidor que não é “ao vivo”, ou que não está ativo e disponível ao público. Isso lhe dará um campo de testes limpo com o qual testar todas as correções potenciais para resolver o problema, sem ameaçar a segurança ou santidade de sua aplicação ao vivo.
diagnosticar um código de resposta encontrado 302
a 302 Found
o código de resposta indica que o recurso solicitado deve ser acessado temporariamente em um URI diferente., No entanto, é perfeitamente possível que o servidor está configurado incorretamente, fazendo com que ele indevidamente responder com 302 Found
códigos, em vez do padrão e esperado 200 OK
código do normal, funcional pedido. Assim, uma grande parte do diagnóstico da questão será passar pelo processo de verificação dupla que recursos / URLs estão gerando 302 Found
códigos de resposta e determinar se estes códigos são apropriados ou não.,
Se a sua aplicação está a responder com 302 Found
códigos que não devem ser emitidos, esta é uma questão que muitos outros visitantes podem estar a experimentar também, impedindo dramaticamente a capacidade da sua aplicação para os utilizadores de serviços. Vamos rever algumas dicas e truques de solução de problemas para ajudá-lo a tentar resolver este problema. Se nada aqui funcionar, não se esqueça que o Google é seu amigo. Tente procurar por termos específicos relacionados com o seu problema, como o nome do CMS da sua aplicação ou software de servidor web, juntamente com 302 Found
., É provável que encontre outros que tenham experimentado este problema e tenham encontrado uma solução.
Resolução de problemas no Lado do Servidor
Aqui estão algumas dicas para ajudar a solucionar problemas que podem estar causando o 302 Found
para aparecer no servidor-lado das coisas:
Confirme a Configuração de Seu Servidor
a Sua aplicação é provavelmente executando em um servidor que está usando um dos dois mais popular servidor web softwares, Apache
ou nginx
., No momento da publicação, ambos os servidores web compõem over 84%
do software do servidor web do mundo! Assim, um dos primeiros passos que você pode tomar para determinar o que pode estar causando estes 302 Found
códigos de resposta é verificar os arquivos de configuração para o seu software do servidor web para instruções de redirecionamento não intencionais.
para determinar qual o servidor web que a sua aplicação está a usar, irá querer procurar um ficheiro chave. Se o seu servidor web for o Apache, procure um ficheiro .htaccess
no directório raiz do seu sistema de ficheiros web., Por exemplo, se a sua aplicação estiver numa máquina partilhada, provavelmente terá um nome de utilizador associado à conta de acolhimento. Em tal caso, o diretório raiz do aplicativo é normalmente encontrado no caminho de /home/<username>/public_html/
, então .htaccess
arquivo no /home/<username>/public_html/.htaccess
.
Se você localizados .htaccess
arquivo abra-o em um editor de texto e procure por linhas que usam o RewriteXXX
diretivas, que são parte de mod_rewrite
módulo no Apache., Cobrindo exatamente como essas regras funcionam está bem além do escopo deste artigo, no entanto, o conceito básico é que a RewriteCond
directiva define um padrão baseado em texto que será correspondido com URLs introduzidos. Se um URL correspondente é solicitado por um visitante ao site, as diretivas
que seguem uma ou mais diretivasRewriteCond
são usadas para realizar a redirecionamento real do pedido para o URL apropriado.,
Por exemplo, aqui está uma simples RewriteCond
e RewriteRule
combinação que corresponde a todas as solicitações de entrada para example.com
e estabelece uma temporariamente redireccionamento para que o mesmo URI no temporary-example.com
domínio em vez disso:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
Observe que o sinalizador extra no final do RewriteRule
, que afirma explicitamente que o código de resposta deve ser 302
, indicando que os agentes do utilizador (navegadores) que este é um redirecionamento temporário., Assim, se você encontrar qualquer estranho RewriteCond
ou RewriteRule
diretivas .htaccess
arquivo que não parecem pertencer, tente temporariamente comentando-los (usando o #
caracteres de prefixo) e reiniciar o seu servidor web para ver se isso resolve o problema.por outro lado, se o seu servidor estiver a correr em nginx
, terá de procurar um ficheiro de configuração completamente diferente., Por padrão, esse arquivo é chamado de nginx.conf
e está localizado em um dos poucos diretórios comuns: /usr/local/nginx/conf
/etc/nginx
, ou /usr/local/etc/nginx
. Uma vez localizado, abrir nginx.conf
em um editor de texto e procure por rewrite
diretivas que estão usando o redirect
bandeira. Por exemplo, aqui está um simples block directive
(i.e., um nome de conjunto de directivas) que configura um servidor virtual através da criação de um redirecionamento temporário, a partir de example.com
temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
directivas nginx
são semelhantes para o RewriteCond
e RewriteRule
diretivas encontradas no Apache
como eles tendem a conter mais um texto complexo, baseado em padrões para a pesquisa., De qualquer forma, procure na sua nginx.conf
arquivo para qualquer anormal rewrite
diretivas que incluem redirect
bandeira (a alternativa permanent
bandeira de problema 301
códigos de resposta em vez disso). Comentar quaisquer anormalidades antes de reiniciar o servidor para ver se o problema foi resolvido.
verifique se Existe Software desactualizado
o documento de especificação do RFC para HTTP 1.,0 afirmou que o objetivo de um código de resposta
era indicar que o cliente deveria realizar um redirecionamento temporário. No entanto, muitos navegadores mais recentes para o processamento de uma302
código recebida através de umaPOST
solicitação como uma errôneaGET
solicitação em vez disso, o que causou confusão e problemas para algumas servidor web softwares tentando obter navegadores para executar a sua tarefa quando redirecionamento temporário foi necessário. Para resolver isso o HTTP 1.,1 RFC specification document added the303 See Other
and307 Temporary Redirect
response codes, which are explicit means of handlingPOST-to-GET
and temporary direct responses, respectively.
Vasculhar os Logs
quase todas as aplicações web irão manter alguma forma de logs do lado do servidor. Application logs
são tipicamente o histórico do que a aplicação fez, tais como quais páginas foram solicitadas, quais servidores ela conectou, quais resultados de banco de dados que ela fornece, e assim por diante., Server logs
estão relacionados com o hardware real que está executando a aplicação, e muitas vezes irá fornecer detalhes sobre a saúde e status de todos os Serviços Conectados, ou mesmo apenas o próprio servidor. Google “logs” se você está usando um CMS, ou ” logs “e” logs ” se você está executando uma aplicação personalizada, para obter mais informações sobre encontrar os logs em questão.
depurar o seu código de Aplicação
Se tudo o resto falhar, pode ser que um problema em algum código personalizado dentro da sua aplicação está causando o problema., Tente diagnosticar de onde o problema pode estar vindo através de depuração manual de sua aplicação, juntamente com o processamento através de aplicativos e registros do servidor. Idealmente, faça uma cópia de toda a aplicação para uma máquina de Desenvolvimento local e execute um processo de depuração passo-a-passo, que lhe permitirá recriar o cenário exato no qual o 302 Found
ocorreu e ver o código da aplicação no momento em que algo corre mal.,
não importa qual seja a causa, a aparência de um 302 Found
dentro de sua própria aplicação web é uma forte indicação de que você pode precisar de uma ferramenta de gerenciamento de erros para ajudá-lo automaticamente a detectar tais erros no futuro. O melhor destas ferramentas pode até alertá-lo e à sua equipa imediatamente quando ocorre um erro. O software de monitoramento de erros da Airbrake fornece monitoramento de erros em tempo real e relatórios automáticos de exceção para todos os seus projetos de desenvolvimento., O painel de instrumentos da Airbrake garante que você recebe atualizações de Estado 24 horas por dia sobre a saúde e as taxas de erro da sua aplicação. Não importa o que você está trabalhando, Airbrake facilmente se integra com todas as línguas e frameworks mais populares. Além disso, o Airbrake torna mais fácil personalizar os parâmetros de exceção, enquanto lhe dá o controle completo do sistema de filtro de erro ativo, então você só reúne os erros que mais importam.,confira o software de monitoramento de erros da Airbrake hoje e veja por si mesmo porque tantas das melhores equipes de engenharia do mundo usam Airbrake para revolucionar suas práticas de manuseio de exceção!