Server.Transfer vs Response.Redirect
Servidor y Respuesta, ambos son objetos en ASP.NET. El objeto de servidor proporciona métodos y propiedades para varias tareas relacionadas con un servidor. La transferencia es un método del objeto Servidor y envía información del estado actual a otro archivo .asp para su procesamiento. El objeto de respuesta describe métodos y propiedades relacionadas con la respuesta de un servidor. La redirección es un método del objeto Respuesta y envía un mensaje al navegador para que se conecte a una URL diferente. A pesar de que tanto Server.Transfer como Response.Redirect pueden usarse para transferir un usuario de una página a otra, son diferentes en la forma en que realmente realizan esta tarea..
Qué es Response.Redirect?
La redirección es un método en el objeto Respuesta. Cuando se llama al método de respuesta, envía el código HTTP 302 y la URL de la página web solicitada al navegador de los usuarios. El código HTTP 302 informa al navegador de los usuarios que el recurso solicitado se encuentra en una URL diferente. Cuando el navegador recibe el código, abre el recurso en la nueva ubicación. La página web solicitada puede residir en el mismo servidor que la página que contenía la solicitud o podría residir en algún otro servidor. Al solicitar una página web que reside en el mismo servidor que la página actual, el método de respuesta se puede utilizar de la siguiente manera:
Response.Redirect ("nextPage.html");
Al solicitar una página web que reside en otro servidor, el método de respuesta se puede utilizar de la siguiente manera:
Response.Redirect ("http://www.newServer.com/newPage.aspx");
Que es Server.Transfer?
Como se mencionó anteriormente, la transferencia es un método del objeto de servidor. Cuando se llama al método de transferencia, la solicitud original se modifica para transferir a otra página en el mismo servidor. Cuando se solicita una nueva página utilizando Server.Transfer, la URL que se muestra en el navegador web de los usuarios no cambia. Esto se debe a que la transferencia ocurre en el lado del servidor y el navegador no tiene ningún conocimiento sobre la transferencia. Al utilizar la segunda sobrecarga para Server.Transfer (ruta de cadena, bool preserveForm) y establecer el segundo parámetro como verdadero, las variables de formulario publicadas y las cadenas de consulta pueden estar disponibles para la segunda página.
¿Cuál es la diferencia entre Server.Transfer y Response.Redirect?
Aunque tanto Server.Transfer como Response.Redirect pueden usarse para transferir un usuario de una página a otra, existen algunas diferencias entre los dos métodos. Además de la aparente diferencia sintáctica, Response.Redirect realiza un viaje de ida y vuelta al servidor, mientras que Server.Transfer cambia el enfoque del servidor web a una página web diferente. Por lo tanto, al usar Server.Transfer, los recursos del servidor se pueden conservar. Por otra parte, Response.Redirect se podría usar para redirigir al usuario a una página web en otro servidor, mientras que Server.Transfer solo se puede usar para redirigir al usuario a páginas web en el mismo servidor. También utilizando Server.Transfer, se puede acceder a las propiedades de la página anterior a través de la nueva página, pero esto no es posible con Response.Redirect. Además, Response.Redirect cambia la URL en la barra de direcciones del navegador cuando se accede a la nueva página, pero cuando se usa el Servidor. Transfiera la URL original se retiene y el contenido de la página se reemplaza. Así que el usuario no puede usarlo para marcar la nueva página..