Diferença entre Server.Transfer e Response.Redirect

Server.Transfer vs Response.Redirect

Servidor e resposta são objetos no ASP.NET. O objeto Servidor fornece métodos e propriedades para várias tarefas relacionadas a um servidor. Transferência é um método do objeto Servidor e envia informações do estado atual para outro arquivo .asp para processamento. O objeto Resposta descreve métodos e propriedades relacionadas à resposta de um servidor. Redirecionar é um método do objeto Response e envia uma mensagem ao navegador, fazendo com que ele se conecte a um URL diferente. Embora o Server.Transfer e o Response.Redirect possam ser usados ​​para transferir um usuário de uma página para outra, eles são diferentes na maneira como realizam essa tarefa..

O que é Response.Redirect?

Redirecionar é um método no objeto Response. Quando o método Response é chamado, ele envia o código HTTP 302 e o URL da página da web solicitada para o navegador dos usuários. O código HTTP 302 informa ao navegador dos usuários que o recurso solicitado está localizado em uma URL diferente. Quando o navegador recebe o código, ele abre o recurso no novo local. A página da web solicitada pode residir no mesmo servidor que a página que continha a solicitação ou pode estar residindo em outro servidor. Ao solicitar uma página da web que resida no mesmo servidor da página atual, o método de Resposta pode ser usado da seguinte maneira:

Response.Redirect ("nextPage.html");

Ao solicitar uma página da web que reside em outro servidor, o método de Resposta pode ser usado da seguinte maneira:

Response.Redirect ("http://www.newServer.com/newPage.aspx");

O que é Server.Transfer?

Como mencionado anteriormente, Transfer é um método do Objeto Servidor. Quando o método Transfer é chamado, a solicitação original é modificada para ser transferida para outra página no mesmo servidor. Quando uma nova página é solicitada usando o Server.Transfer, o URL mostrado no navegador dos usuários não muda. Isso ocorre porque a transferência ocorre no lado do servidor e o navegador não tem nenhum conhecimento sobre a transferência. Usando a segunda sobrecarga para Server.Transfer (caminho da string, bool preserveForm) e definindo o segundo parâmetro como true, as variáveis ​​de formulário postadas e as strings de consulta podem ser disponibilizadas para a segunda página.

Qual é a diferença entre Server.Transfer e Response.Redirect?

Embora o Server.Transfer e o Response.Redirect possam ser usados ​​para transferir um usuário de uma página para outra, existem algumas diferenças entre os dois métodos. Além da aparente diferença sintática, o Response.Redirect faz uma ida e volta ao servidor, enquanto o Server.Transfer altera o foco do servidor da Web para uma página da Web diferente. Portanto, usando Server.Transfer, os recursos do servidor podem ser preservados. Por outro lado, o Response.Redirect pode ser usado para redirecionar o usuário para uma página da Web em outro servidor, enquanto o Server.Transfer pode ser usado apenas para redirecionar o usuário para páginas da Web no mesmo servidor. Além disso, usando Server.Transfer, as propriedades da página anterior podem ser acessadas pela nova página, mas isso não é possível com o Response.Redirect. Além disso, o Response.Redirect altera a URL na barra de endereços do navegador quando a nova página é acessada, mas ao usar o Server.Transfer, a URL original é mantida e o conteúdo da página é substituído. Portanto, o usuário não pode usá-lo para marcar a nova página como favorita.