response.redirect和server.transfer之间的区别

SMK*_*SMK 18 c# asp.net

可能重复:
Response.Redirect与Server.Transfer
Server.Transfer Vs. 的Response.Redirect

response.redirect和server.transfer有什么区别?我知道的唯一区别是:在response.redirect中,浏览器URL更改为目标页面以及server.transfer,url保持不变!还有其他区别吗?

Pit*_*ger 59

在以下情况下应使用Response.Redirect:

  • 我们希望将请求重定向到我们服务器上的某些纯HTML页面或其他某个Web服务器

  • 我们不关心在每个请求上导致额外的往返服务器

  • 我们不需要保留原始请求中的查询字符串和表单变量

  • 我们希望我们的用户能够看到他在浏览器中重定向的新重定向URL(如果必要,可以将其加入书签)

在以下情况下应使用Server.Transfer:

  • 我们希望将当前页面请求转移到同一服务器上的另一个.aspx页面

  • 我们希望保留服务器资源并避免不必要的往返服务器

  • 我们想保留查询字符串和表单变量(可选)

  • 我们不需要在用户Web浏览器中显示我们重定向请求的真实URL


Fré*_*idi 11

Response.Redirect() 向客户端发送重定向头,客户端自己请求新页面.

Server.Transfer()仅停止渲染当前页面并开始渲染另一个页面.客户不是更明智的.

这就是为什么Server.Transfer()不能用于重定向到另一台服务器提供的页面的原因.