Response.redirect is used when,
• We want to redirect the request from plain HTML pages on our server to some other server.
• We don’t want the roundtrip process to the server on each request
• We don’t need to defend QueryString and form variables from the main request
• We want that users can see the new Redirected URL in browser
Server.Transfer is used when,
• We want to transfer the page from current page to another .Aspx page on same server
• We want to defend the server resources.
• We want to defend QueryString and Form validations
• We don’t want that other users can see the original URL from where we redirected the request.