Ao efetuar o redirecionamento do cliente para uma página utilizando o método Redirect da classe HttpResponse (propriedade Response da página), o ASP.NET retornará o código de status do protocolo HTTP definido como 302 que indica que o recurso foi encontrado. Se decompilar o método Redirect, veremos que ele definirá a propriedade RedirectLocation para a URL especificada informada para o método Redirect e a propriedade StatusCode estará definida como 302.
Suponhamos que um buscador tenha encontrado uma página e, dentro dela voce faz o redirecionamento para uma segunda página. O código 302 (utilizado pelo método Redirect) será retornado para o cliente, informando que a página foi encontrada e, em seguida, efetuará o redirecionamento para o endereço especificado neste mesmo método mas, e se o redirecionamento for permanente? Neste caso, podemos informar o código 301 (Moved Permanently) e ele redirecionará a requisição atual e todas as requisições subsequentes para a página definida na propriedade RedirectLocation, conforme mostrado abaixo:
Response.Status = “301 Moved Permanently”;
Response.StatusCode = 301;
Response.RedirectLocation = “OutraPagina.aspx”;
Response.End();