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请求,流程如下:

浏览器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

时间: 2024-11-08 14:14:36

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

Response.Redirect和Server.Transfer比较--(转)

大多数人使用Response.Redirect 将用户引导到另一个页面,而另一些人好像偏爱Server.Transfer. 那么,Response.Redirect 和Server.Transfer   有什么区别? Response.Redirect简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面. 例如:Response.Redirect("http://www.zhisi.net/") Server.Transfer也是通过一条语句将用户引导到另一页面,比如:Server.

Response.End()、Response.Redirect()、Server.Transfer()导致“正在中止线程”异常的问题

try {     if (true)           {                Response.Write("测试1");                Response.End();            }    else            { if (true)                {                     Response.Write("测试2");                     Response.E

Response.Redirect与Server.Transfer区别

执行原理: 1.浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址 2.浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件 简单的说: Response.Redirect    是通知客户端浏览器(客户端浏览器,地址栏地址发生变化)跳转的. 而    Server.Transfer   

response.redirect() server.transfer() sever.execute() 详解和区分

ASP.NET页面跳转有什么方法呢?,现在给大家介绍三种方法,他们的区别是什么呢?让我们开始吧: ASP.NET页面跳转1.response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护.但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端.需要注意的是跳转后内部空间保存

ASP.NET的Response.Redirect() 和Server.Transfer()的区别(转)

Sever.Transfer方法把执行流程从当前的ASPX页面转到同一服务器上的另一ASPX页面.但新的ASPX页面仍使用前一ASPX页面创建的应答流.如果用Server.Transfer方法实现页面之间的导航,则浏览器中的URL不会改变,因为重新定向完全是在服务器端进行的,浏览器根本不知道服务器已经执行了一次页面变换. Response.Redirect则是客户端第一次请求服务器,并返回状态代码302及新的URL,客户端再次请求新的URL,服务器才返回新页面,多了一次应答.

Response.Redirect和Server.Transfer的区别

Response.redirect 是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求那个新的地址,流程如下:浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址(服务器返回的Response.Redirect后面的地址) PS: ASP.net里面用Response.Redirect跳转,PHP里面是He

SQL Server 事务隔离级别详解

原文:SQL Server 事务隔离级别详解 标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设计数据库事务级别 SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可以在查询(表级别)级别上设置事务隔离级别.事务隔离级别总共有6个隔离级别:READ UNCOMMITTED(未提交读,读脏),相当于(NOLOCK)R

CentOS 7上安装Zabbix Server 3.0 图文详解

转载自 http://www.linuxidc.com/Linux/2016-09/135204.htm CentOS 7上安装Zabbix Server 3.0 图文详解 1.查看系统信息. cat /etc/RedHat-releaseCentOS Linux release 7.0.1406 (Core) uname -a Linux VM_96_155_centos3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_

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

参考文献: (总结)CentOS Linux下VNC Server远程桌面配置详解 远程桌面连接工具VNC——license Key 我的下载地址为 太平洋下载 VNC连接黑屏的问题 centos 6.5安装vncserver 并开启远程桌面 有个服务固定ip才能访问,系统是centos6.5,远程ssh只有命令,执行命令还行,但是打开网页看连接效果不行,所以需要服务器桌面共享. 一.安装相应桌面环境与vnc服务端和客户端: # yum groupinstall "X Window System