页面跳转Transfer与Redirect的区别你知道吗?
一 前言
关于页面跳转的方式常用的应该就是,链接跳转,js跳转,Server.Tranfser和Response.Redirect 这几种,可是在Tranfser与Redirect之间用哪种更好(本文只讨论这两种),以及它们之间的区别各位又是否深究过呢?至少我是没有,对此也深入研究了一下,特意分享给大家 如有不对之处还望大家指出。
二 Transfer与Redirect区别
2.1 Transfer跳转方式只能在同一站内跳转不能跨站点,当以下代码执行时会抛出异常,而用Redirect方法则能正常跳转
Server.Transfer("http://www.baidu.com");

2.2 Transfer跳转URL地址不会改变,而用Redirect方式URL则会显示跳转后的URL地址
我默认的地址是Index.aspx页面
2.2.1Transfer:

2.2.2Redirect :

2.3 Transfer 可以将上一页面的Form表单数据传递到跳转页面,而Redirect则不行
在Index页面Form表单中添加一个textbox,我们来看看两者的区别
<input id="" name="txtTransfer" type="text" value=""/>
Transfer:

当然你可以选择不将上一页面的表单内容带至跳转页面多加一个参数即可
//取消传递表单数据
Server.Transfer("Transfer.aspx",false);
Redirect:

Transfer跳转客户端只用发一次请求就可以跳转而Redirect客户端则需要两次请求才成完成跳转
接下来就深入的看看这两种 方法的差别吧
三 原理解析请次数的区别
Transfer 为什么与Redirect的跳转过程到底是有什么样的区别呢,我们先看下用Fiddler抓到的请求
Transfer

Redirect:

然后展开Redirect请求中状态码为302的Http请求详情如下:

从上面的图可以看出Transfer在客户端发出跳转请求后,在服务端就直接发生了跳转并直接响应了跳转页的内容。
而Redirect方法客户端则发出了两次请求步骤如下
1 客户端发出跳转请求,服务端接收后 先响应302的状态码 并带上跳转的URL
2 客户端接收302状态码+URL后再次向服务端请求跳转页面的内容 步骤如下图

通过上面的两张图可以很明显的知道Transfer与Redirect在请求上的区别,Transfer比Redirect少了一次Http请求所以在资源消耗,服务器压力上来说Transfer是略胜一筹的
当然这两种方法并没有谁好谁坏的区别,我相信存在必然合理,两者都有各自的优势。本文目的只是对两种跳转方式的区别做一个详解 仅此而以。
四 总结
在生活与工作中要善于抓住细节,多思考多实践,程序员应该要有抱根问底的习惯,做一个有思想的程序员,又干掉自己的一个盲区!希望本文能给您带来一点点收获!
本人水平有限如有理解不对之处还望指出~谢谢
如果您觉得本文有给您带来一点收获,不妨点个推荐,为我的付出支持一下,谢谢~
如果希望在技术的道路上能有更多的朋友,那就关注下我吧,让我们一起在技术的路上奔跑
页面跳转Transfer与Redirect的区别你知道吗?的更多相关文章
- 【转】页面跳转Transfer与Redirect的区别你知道吗?
一 前言 关于页面跳转的方式常用的应该就是,链接跳转,js跳转,Server.Tranfser和Response.Redirect 这几种,可是在Tranfser与Redirect之间用哪种更好(本文 ...
- Spring Security4.1.3实现拦截登录后向登录页面跳转方式(redirect或forward)返回被拦截界面
一.看下内部原理 简化后的认证过程分为7步: 用户访问网站,打开了一个链接(origin url). 请求发送给服务器,服务器判断用户请求了受保护的资源. 由于用户没有登录,服务器重定向到登录页面 填 ...
- aspx在页面跳转(Response.Redirect)时丢失session问题及解决办法
[问题描述] 假设a.aspx.cs页面保存有Session["empid"]="3",当a.aspx.cs通过Response.Redirect(" ...
- ASP.NET MVC之"重定向/页面跳转"(关键词RedirectToAction,Redirect)
MVC5 API(官方) 1.RedirectToRouteResult RedirectToAction(string actionName); RedirectToRouteResult Redi ...
- Server.Transfer,Response.Redirect用法点睛
Server.Transfer,Response.Redirect的区别 如果你读过很多行业杂志和 ASP.NET 示例,你会发现,大多数人使用 Response.Redirect 将用户引导到另一个 ...
- 页面跳转 Server.Transfer和 Response.Redirect的区别
1.Server.Transfer 用于把处理的控制权从一个页面转移到另一个页面,在转移的工程中没有离开服务器内部控件(如request,session等)保存的信息不变.因此你能从a页面跳转到b页面 ...
- Server.Transfer 和 Response.Redirect 用法区别
在ASP.NET中,在后台传值方式目前大多都是用 Response.Redirect("页面地址") 来重定向页面的,但是现在还有一种方式也可以达到重定向页面的作用,而且在某些时刻 ...
- 在jsp中常用的内置对象(5个)小总结和两种页面跳转方式(服务器端调转、客户端跳转)的区别
jsp中常用的几个内置对象: 一.request对象 主要作用: (1)获取请求页面的信息 比如:request.getParameter("参数名"); (2)获取客户端 ...
- Servlet页面跳转实现方法的区别
一直对Servlet页面跳转的几种方式理解的糊里糊涂的,今天在网上搜了一把,找到一遍比较好的,记下来,以后看看. Servlet页面跳转分两部分,一是发生在Servlet,一是在JSP,其实JSP也就 ...
随机推荐
- HTML制作个人简历
简历代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)
随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种作为最低层的简单的数据挖掘算法,现在利用微软数据案例库做一个简要总结. 应用场景介绍 其实数据挖掘应用的场景无处不在,很多的环境都会应用到数据 ...
- SQL Server锁定【2015.12.17】
锁定的体系分类 1.表级锁 保证数据在逻辑上的一致性. 包含:行级锁.分页锁.表.数据分页.LOB分页以及索引叶子级锁. 2.闩 保证数据在物理上的一致性,系统采用,比锁少耗资源,对用户不可见. ...
- CentOS 7 网卡子接口的创建
OS:CentOS 7 在linux上创建vlan需要加载802.1q模块: 1.检测OS是否已经加载802.1q模块 [root@controller ~]# modinfo 8021q filen ...
- spring服务定位器类
此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:通过持有的Spring应用场景ApplicationContext,可在任何地方获取bean. 1. 服务定位器类:S ...
- 烂泥:使KVM显示VM的IP地址及主机名
本文由秀依林枫提供友情赞助,首发于烂泥行天下. KVM虚拟化学习已经有一段时间了,现在虚拟化软件比较多,对比了下目前使用比较多的VMware Vsphere.发现在不进入VM系统的情况下,Vspher ...
- 命令行选项解析函数(C语言):getopt()和getopt_long()
命令行选项解析函数(C语言):getopt()和getopt_long() 上午在看源码项目webbench时,刚开始就被一个似乎挺陌生函数getopt_long()给卡住了,说实话这函数没怎么见过, ...
- 004.UDP--拼接UDP数据包,构造ip头和udp头通信(使用原始套接字)
一.大致流程: 建立一个client端,一个server端,自己构建IP头和UDP头,写入数据(hello,world!)后通过原始套接字(SOCK_RAW)将包发出去. server端收到数据后,打 ...
- 转载:学习Entity Framework 中的Code First
看完觉得不错,适合作为学习资料,就转载过来了 原文链接:http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html 这是上周就写 ...
- 【CImg】霍夫变换——直线检测
霍夫变换——直线检测 考古debug,其实很久之前就解决的bug......一直忘记过来改文章....欸 =============================原文================ ...