Response.Redirect y Server.Transfer

En estos dias recordé estas dos opciones que .Net nos ofrece en cuanto a un website se refiere y pues me dí cuenta que no las tenía claras. Luego de investigar un poco creo que ya toca un siguiente post.

Generalizando ambas realizan un redireccionamiento, sin embargo existen varias diferencias las cuales nos aclaran que cada una de las “opciones de redireccionamiento” tienen objetivos diferentes.

Response.Redirect

Basicamente envia al navegador una respuesta con headers de redireccionamiento a la nueva ubicación, la cual puede ser otra página en el mismo sitio, otro sitio en el mismo servidor u otro sitio externo.

Ejemplos:

Response.Redirect(“OtherPage.aspx”);  //Para otra página en el mismo servidor.

Response.Redirect(“http://www.google.com/”); // Para otro sitio, no necesariamente en el mismo servidor

Ojo, con un Response.Redirect estamos haciendo notorio al usuario que se le está cambiando de ubicación y por ende ve la nueva dirección en el navegador, en resúmen, el usuario realiza un nuevo Request.

Server.Transfer

La similitud con Response.Redirect es que también envía al usuario hacia otra página, sin embargo, existen varias características que enumero a continuación:

  • Se conservan los recursos del servidor ya que solamente se hace un “focus”
  • No se realiza ningún nuevo http request.
  • Se mantiene el mismo URL en el browser del usuario.
  • Tiene opción a mantener las colecciones del Formulario y QueryString.

Server.Transfer solamente funciona entre sitios corriendo en el mismo server

Ejemplo de uso:

Server.Transfer(“otherPage.aspx”);

Server.Transfer(“otherPage.aspx”,true); // si queremos mantener las colecciones QueryString y Form

Para mas detalles pueden avocarse al MSDN

HttpResponse.Redirect Method

HttpServerUtility.Transfer Method

Espero les sea útil este post :)

Comparte Este Post:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • FriendFeed

About fboiton

I'm a Software Developer specialized in Web Solutions for Large Scale and High Availability Applications, with more than 8 years of experience in Web Applications development. Software Architecture, Team Management and Continous Improvement are my bigger interests. Specialties ASP.NET, SQL Server, Web Development in general, Linux Servers, Software Architecture, Team Management.
This entry was posted in Desarrollo de Software and tagged , , . Bookmark the permalink.

Leave a Reply