What is difference between Server.Transfer
and Response.Redirect
?
Response. Redirect simply sends a message (HTTP 302) down to the browser. Server. Transfer happens without the browser knowing anything, the browser request a page, but the server returns the content of another.
Response. Redirect sends an HTTP request to the browser, then the browser sends that request to the web server, then the web server delivers a response to the web browser. For example, suppose you are on the web page "UserRegister. aspx" page and it has a button that redirects you to the "UserDetail.
Server. Transfer navigates the pages within the same application or within the same server, the page is still in memory that can read the values directly from page2 on page1, in other words by using server. Transfer the page is not redirected permanently.
Transfer(String, Boolean) Terminates execution of the current page and starts execution of a new page by using the specified URL path of the page. Specifies whether to clear the QueryString and Form collections. public: void Transfer(System::String ^ path, bool preserveForm); C# Copy.
Response.Redirect
simply sends a message (HTTP 302) down to the browser.
Server.Transfer
happens without the browser knowing anything, the browser request a page, but the server returns the content of another.
Response.Redirect()
will send you to a new page, update the address bar and add it to the Browser History. On your browser you can click back.
Server.Transfer()
does not change the address bar. You cannot hit back.
I use Server.Transfer()
when I don't want the user to see where I am going. Sometimes on a "loading" type page.
Otherwise I'll always use Response.Redirect()
.
To be Short: Response.Redirect
simply tells the browser to visit another page. Server.Transfer
helps reduce server requests, keeps the URL the same and, with a little bug-bashing, allows you to transfer the query string and form variables.
Something I found and agree with (source):
Server.Transfer
is similar in that it sends the user to another page with a statement such asServer.Transfer("WebForm2.aspx")
. However, the statement has a number of distinct advantages and disadvantages.Firstly, transferring to another page using
Server.Transfer
conserves server resources. Instead of telling the browser to redirect, it simply changes the "focus" on the Web server and transfers the request. This means you don't get quite as many HTTP requests coming through, which therefore eases the pressure on your Web server and makes your applications run faster.But watch out: because the "transfer" process can work on only those sites running on the server; you can't use
Server.Transfer
to send the user to an external site. OnlyResponse.Redirect
can do that.Secondly,
Server.Transfer
maintains the original URL in the browser. This can really help streamline data entry techniques, although it may make for confusion when debugging.That's not all: The
Server.Transfer
method also has a second parameter—"preserveForm". If you set this toTrue
, using a statement such asServer.Transfer("WebForm2.aspx", True)
, the existing query string and any form variables will still be available to the page you are transferring to.For example, if your WebForm1.aspx has a TextBox control called TextBox1 and you transferred to WebForm2.aspx with the preserveForm parameter set to True, you'd be able to retrieve the value of the original page TextBox control by referencing
Request.Form("TextBox1")
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With