response.redirect和server.Transfer的差别详解
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请求,流程如下:
当服务器碰到Server.Transfer语句时,会直接转向新的URL,流程如下:
三 跳转的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
response.redirect和server.Transfer的差别详解的更多相关文章
- Response.Redirect与Server.Transfer区别-转
执行过程: 1.浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器-> ...
- Response.Redirect和Server.Transfer
今天又比较闲,逛了逛园子,看看asp.net的内容,看到一篇关于这两个的比较: http://www.cnblogs.com/yunfeng8967/archive/2008/03/06/109323 ...
- Response.End ,Response.Redirect、Server.Transfer 引发 “正在中止线程”异常的问题
google后得知:Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件,同时抛出ThreadAbortExcepti ...
- Detail in Response.redirect and Server.transfer in ASP.NET
http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/4/
- CentOS6.5下VNC Server远程桌面配置详解
参考文献: (总结)CentOS Linux下VNC Server远程桌面配置详解 远程桌面连接工具VNC——license Key 我的下载地址为 太平洋下载 VNC连接黑屏的问题 centos 6 ...
- SQL Server 执行计划操作符详解(3)——计算标量(Compute Scalar)
接上文:SQL Server 执行计划操作符详解(2)--串联(Concatenation ) 前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介绍第 ...
- SQL Server 执行计划操作符详解(2)——串联(Concatenation )
本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻 ...
- 引用 Windows Server 2003 FTP服务器配置详解
引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...
- Response.Redirect()、Server.Execute和Server.Transfer的区别
1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL. 当Response.Redirect()方法被调用时,它会创建一个应答,应答头中 ...
随机推荐
- 进入名企必读的.NET面试题
1. 罗列ASP.NET服务器控件的运行的生命周期. 一般服务器控件的生命周期包含11个阶段: /// <summary> /// 1. 初始化 /// </summary> ...
- 一种基于Welch's t检验的二元关系挖掘
现实中常常需要挖掘两种因素之间的关联,Welch's t检验很适合其中的nomial-numerical的关系挖掘.比如天气状况对销量的影响,或者天气情况对交通流量的影响等等.我们可以按照下雨/不下雨 ...
- 多线程/进度条应用(progressbar)
使用Control Sets 下的 ProgressBar - Responsive Loop控件 ProcessBar 或者 CancelBar 都可以被设置为 invisible 代码如下(分享自 ...
- C++ 析构方法
1.什么是析构方法? 析构方法与构造方法互补. 2.为什么设计析构方法? 构造方法创建一个对象,对象内部往往还会申请一些资源.设计析构方法的目的是 释放资源,同时销毁自身. 3.析构方法可以认为分为两 ...
- linux自己带的apache重新启动
如果是linux自己带的apache的话就使用命令 service httpd start 启动 service httpd stop 关闭 service httpd restart 重新启动 如果 ...
- 在.NET中实现彩色光标/动画光标和自定义光标[转]
下面是完整的例子,可以通过命令行编译即可看到效果. Test.cs using System; using System.Drawing; using System.Windows.Forms; us ...
- mysqldump原理0
- Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
为什么要使用Maven 摘自百度百科的介绍 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.Maven 除了以程序构建能力为特色之外,还提 ...
- Mybatis的简单示例
首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示. 新建完表之后我们还需要建立相对应的实体类User ...
- C语言bool类型定义
在我们的C语言程序中,经常用到布尔类型,但是C标准并不支持布尔类型,但我们可以自己实现其类型,实现代码如下:typedef enum{ false = 0, ture = !false}bool;