c# asp.net

c# - Diferencia entre response.redirect y server.transfer



asp.net (4)

Los datos del formulario se transfieren en Server.Transfer, pero no en Response.Redirect, otra diferencia. Además, si no se confunde, Server.Transfer funciona en el mismo servidor, no en páginas cruzadas entre servidores.

Posibles duplicados:
Response.Redirect vs. Server.Transfer
Server.Transfer vs. Response.Redirect

¿Cuál es la diferencia entre response.redirect y server.transfer? Solo una de las diferencias que conozco es: en response.redirect la URL del navegador cambia a la página de destino, así como en server.transfer, ¡la URL sigue siendo la misma! ¿Alguna otra diferencia?


Server.Transfer es más eficiente porque con Response.Redirect le indica al navegador que realice otra solicitud (otro viaje de ida y vuelta a la red) cuando Server.Transfer es "server-internal" ...


Response.Redirect() envía un encabezado de redirección al cliente, y el propio cliente solicita la nueva página.

Server.Transfer() solo detiene la renderización de la página actual y comienza a renderizar otra. El cliente no es el más sabio.

Es por eso que Server.Transfer() no se puede usar para redirigir a páginas servidas por otro servidor.


Response.Redirect debe utilizarse cuando:

  • queremos redirigir la solicitud a algunas páginas HTML simples en nuestro servidor oa algún otro servidor web

  • no nos preocupamos por hacer viajes de ida y vuelta adicionales al servidor en cada solicitud

  • no necesitamos preservar la cadena de consulta y las variables de formulario de la solicitud original

  • queremos que nuestros usuarios puedan ver la nueva URL redirigida donde él es redirigido en su navegador (y poder marcarla si es necesario)

Server.Transfer se debe utilizar cuando:

  • queremos transferir la solicitud de la página actual a otra página .aspx en el mismo servidor

  • queremos preservar los recursos del servidor y evitar los viajes de ida y vuelta innecesarios al servidor

  • queremos conservar la cadena de consulta y las variables de formulario (opcionalmente)

  • No necesitamos mostrar la URL real donde redirigimos la solicitud en el navegador web de los usuarios.