Um status 301 (movido permanentemente) significa que o recurso foi movido permanentemente 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 em RFC 2616 .