Qual é a diferença entre 301 e 302 no HTTP?

9

Eu vejo todos os sites de tinyurl como 302

Mas qual é a diferença? Parece que ambos estão trabalhando para mim

vps
fonte

Respostas:

12

Um status 301 (movido permanentemente) significa que o recurso foi permanentemente movido para um novo local. O cliente (navegador) deve usar o novo local em vez do antigo no futuro.

Um status 302 (encontrado) significa que o recurso está temporariamente localizado em outro lugar. O cliente deve usar o local fornecido para a solicitação atual, mas no futuro deve continuar usando o local antigo.

Ambos os códigos de status terão o efeito de fazer com que o navegador siga um redirecionamento. Você deve optar por usar um status 301 ou 302, dependendo de o redirecionamento ser permanente ou temporário.

Mais informações sobre esses códigos de resposta HTTP podem ser encontradas na RFC 2616 .

Phil Ross
fonte
E se eu quiser cancelar o 301? Isso está fora de controle, pois não é usado novamente?
vps
@vps Você pode cancelar o redirecionamento 301, mas não há garantia de que o cliente solicite novamente o URL original. Se você quer ser capaz de cancelar o redirecionamento no futuro, então você pode ser melhor de usar um 302.
Phil Ross
3

Quando uma aranha do mecanismo de pesquisa encontra o código de status 301 no cabeçalho de resposta de uma página da Web, entende que essa página não existe mais, procura pelo cabeçalho do local em resposta, escolhe o novo URL e substitui o URL indexado pelo novo e também transfere o pagerank .

Portanto, o mecanismo de pesquisa atualiza todo o URL indexado que não existe mais (301 encontrado) com o novo URL, isso reterá o tráfego da sua página da Web antiga, pagerank e desviará para a nova (você não perderá o tráfego da página da Web antiga).

Navegador: se um navegador encontrar o código de status 301, ele fará o cache do mapeamento da URL antiga com a nova URL, o cliente / navegador não tentará solicitar o local original, mas usará o novo local a partir de agora até a remoção do cache.

Quando o spider do mecanismo de pesquisa encontrar o status 302 para uma página da web, ele será redirecionado temporariamente apenas para o novo local e rastreará as duas páginas, o URL antigo da página da web ainda existe no banco de dados do mecanismo de pesquisa e sempre tentará solicitar o local antigo e rastreá-lo. o cliente / navegador ainda tentará solicitar o local original.

Leia mais sobre como implementá-lo no asp.net c # e como qual é o impacto no mecanismo de pesquisa - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code- aspnet-csharp-Implementation.html

Rohit
fonte