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

response.redirect和server.Transfer的差别详解的更多相关文章

  1. Response.Redirect与Server.Transfer区别-转

    执行过程: 1.浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器-> ...

  2. Response.Redirect和Server.Transfer

    今天又比较闲,逛了逛园子,看看asp.net的内容,看到一篇关于这两个的比较: http://www.cnblogs.com/yunfeng8967/archive/2008/03/06/109323 ...

  3. Response.End ,Response.Redirect、Server.Transfer 引发 “正在中止线程”异常的问题

    google后得知:Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件,同时抛出ThreadAbortExcepti ...

  4. Detail in Response.redirect and Server.transfer in ASP.NET

    http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/4/

  5. CentOS6.5下VNC Server远程桌面配置详解

    参考文献: (总结)CentOS Linux下VNC Server远程桌面配置详解 远程桌面连接工具VNC——license Key 我的下载地址为 太平洋下载 VNC连接黑屏的问题 centos 6 ...

  6. SQL Server 执行计划操作符详解(3)——计算标量(Compute Scalar)

    接上文:SQL Server 执行计划操作符详解(2)--串联(Concatenation ) 前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介绍第 ...

  7. SQL Server 执行计划操作符详解(2)——串联(Concatenation )

    本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻 ...

  8. 引用 Windows Server 2003 FTP服务器配置详解

    引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...

  9. Response.Redirect()、Server.Execute和Server.Transfer的区别

    1.Response.Redirect(): Response.Redirect方法导致浏览器链接到一个指定的URL. 当Response.Redirect()方法被调用时,它会创建一个应答,应答头中 ...

随机推荐

  1. myeclipse 10创建maven项目

    创建maven项目,这里使用的不是myeclipse自带的maven插件.而是自己 又一次安装的插件,就不啰嗦了,直接上图吧 1.先是安装maven插件.将maven插件解压把它放进E:\xuan\M ...

  2. 关于.net中线程原子性的自我总结

    首先来张图,一张 cpu的简图,仅从个人理解角度理解画的 大体 解释下这张图 这是 一张 i5的简图i5 大家都知道 是双核四线程,(超线程技术)l1,l2,l3是 1,2,3级缓存. Cpu工作:每 ...

  3. hdu 5565 Clarke and baton 二分

    Clarke and baton Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  4. SlideLayout

    https://github.com/rey5137/SlideLayout

  5. lucene_indexWriter说明、索引库优化

    IndexWriter Hibernate的SessionFactory 在Hibernate中.一般保持一个数据库就仅仅有一个SessionFactory.由于在SessionFactory中维护二 ...

  6. 关于AutoComplete整合

    AutoComplete应该不是很陌生了,网上也有好多开源的js.今天主要的不是研究Autocomplete这个js的实现.今天主要讲的是将这个js做成一插件.那么今天主要用到的 js插件jquery ...

  7. yii中阻止 SHOW CREATE TABLE and SHOW COLUMNS 每次执行

    Disable SHOW CREATE TABLE and SHOW COLUMNS in Yii为啥会显示:SHOW CREATE TABLE and SHOW COLUMNS 答案:This is ...

  8. Python学习 之 包和模块

    1.rpm -ql python #查看python在计算机中安装了哪些文件 2.模块是一个可以导入的Python脚本文件 包是一堆按目录组织的模块和子包,目录下的__init__.py文件存放了包的 ...

  9. boost库在工作(36)网络服务端之六

    在上面介绍了管理所有连接的类,这个类主要就是添加新的连接,或者删除不需要的连接.但是管理的类CAllConnect是没有办法知道什么时候添加,什么时候删除的,它需要从接收到连接类里获取得到新的连接,从 ...

  10. 读logback源码系列文章(五)——Appender --转载

    原文地址:http://kyfxbl.iteye.com/blog/1173788 明天要带老婆出国旅游几天,所以这段时间暂时都更新不了博客了,临走前再最后发一贴 上一篇我们说到Logger类的inf ...