response.redirect和server.Transfer的差别详解

转自http://www.sowsoy.com/topics-360.html

Response.Redirect和Server.Transfer都能实现页面的跳转,但两者又有很大区别。

一 地址栏里显示的地址不同

Response.Redirect会显示跳转的网页的地址,而Server.Transfer显示跳转前的网页的地址。
假如用上述两种方式实现WebForm1.aspx跳转到WebForm2.aspx

Response.Redirect跳转后地址栏会显示…/WebForm2.aspx

Server.Transfer    跳转后地址栏则显示…/WebForm1.aspx。

二 跳转的流程不同

当服务器碰到Response.Redirect语句时,会发送一条新URL的指令给浏览器,浏览器发送新URL的http请求,流程如下:

浏览器Http请求->服务器执行->遇到Response.Redirect语句->服务器发送新URL给客户端浏览器->浏览器请求执行新URL。

当服务器碰到Server.Transfer语句时,会直接转向新的URL,流程如下:

浏览器Http请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件。

三 跳转的URL范围不同

Response.Redirect可以定向到任何URL(包括站外的URL);而Server.Transfer只能跳转到站内的URL,而且只能是相对地址。

四 跳转的URL传递参数方式不同

前者跳转的URL可以包含参数;而Server.Transfer跳转的URL不能带参数,但可以根据条用参数决定是否保留Request集合里的内容。

如果要跳转Test.aspx?id=1000,只能用前者,不能用后者。

五 效率

Server.Transfer页面跳转的效率比Response.Redirect高;且由于在服务器上执行,可以兼容任何浏览器,但是只能在IIS服务器下运行。

六 对SEO的影响

页面中采用Response.Redirect跳转时,如果不返回301错误码,则有可能受SEO惩罚;而Server.Transfer不会受SEO惩罚。

 

转自http://www.sowsoy.com/topics-360.html

posted @   kumat  阅读(283)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示