可能重复:
Response.Redirect vs. Server.Transfer
Server.Transfer Vs. Response.Redirect
response.redirect和server.transfer之间有什么区别? 我知道的唯一区别是:在response.redirect中,浏览器网址会更改为目标网页以及server.transfer网址保持不变! 还有其他什么区别吗?
答案 0 :(得分:59)
应在以下情况下使用Response.Redirect:
我们希望将请求重定向到我们的一些纯HTML页面 服务器或其他一些Web服务器
我们不关心是否导致额外的往返服务器 每个请求
我们不需要保留查询字符串和表单变量 原始请求
我们希望我们的用户能够在其中看到新的重定向网址 被重定向在他的浏览器中(并且如果它的话可以将其加入书签) 必要)
应在以下情况下使用Server.Transfer:
我们希望将当前页面请求转移到同一服务器上的另一个.aspx页面
我们希望保留服务器资源并避免不必要的 往返服务器
我们希望保留查询字符串和表单变量(可选)
我们不需要显示我们重定向请求的真实网址 用户Web浏览器
答案 1 :(得分:11)
Response.Redirect()
向客户端发送重定向标头,客户端自己请求新页面。
Server.Transfer()
仅停止呈现当前页面并开始呈现另一页面。客户不是更明智的。
这就是Server.Transfer()
无法用于重定向到其他服务器所服务的网页的原因。
答案 2 :(得分:2)
Server.Transfer效率更高,因为使用Response.Redirect,您告诉浏览器发出另一个请求(另一个网络往返),而Server.Transfer是“服务器内部”......
答案 3 :(得分:0)
表单数据在Server.Transfer上传输,但不在Response.Redirect上传输,另一个区别。 此外,如果没有弄错,Server.Transfer可以在同一台服务器上运行,而不是跨服务器页面。