页面跳转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也就 ...
随机推荐
- 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
不知道有人做没做过对日外包,如果做过的话,那么对vb.net应该非常熟悉了,当年我刚毕业的时候也做过四个月的外包,那种日子简直 不是人过的,就连大楼下面买珠宝的阿姨都说,这些孩子,只看过他们上班,就没 ...
- PS网页设计教程——30个优秀的PS网页设计教程的中文翻译教程
PS网页设计教程--30个优秀的PS网页设计教程的中文翻译教程 作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,"熟读唐诗三百首,不会作 ...
- 烂泥:学习ssh之ssh密钥随身携带
本文由秀依林枫提供友情赞助,首发于烂泥行天下 在上一篇文章<烂泥:学习ssh之ssh无密码登陆>中,我们讲解了如何使用ssh密钥,免密码登陆服务器. 这篇文章我们再来讲解,如何把已经生成的 ...
- Linux 下从头再走 GTK+-3.0 (四)
实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等. 接下来试试网格布局 Grid. 我们创建 example4.c ,内容如下: ...
- 今天有事-MySQL
hi 今天有事,一会儿要去耍,能学多少是多少吧 1.MySQL -----子查询与连接(二)----- ----子查询 子查询,是指出现在其他SQL语句内的SELECT子句 注意:子查询指嵌套在查询内 ...
- 台湾辅仁大学的python教程笔记
散记,因为主讲老师讲得也很乱..说课后的自习才是最重要的- 1.就这样,笔记看下.. 2. Modules 模组 很多模组放在一起就是一个packages 一个packages 一定有有__init_ ...
- dedecms调用标签总结(一)
dedecms 基本包含了一个常规网站需要的一切功能,拥有完善的中文学习资料,很容易上手,学习成本较低.学会dedecms 的模板修改.栏目新增.内容模型新增和常用的标签调用方法后,即便我们不懂 ph ...
- Virtual Box常用指令
以下操作需在命令行里将当前路径设为 Virtual Box安装目录 1. 调整磁盘大小(只能调整动态分配的.vdi格式文件) VBoxManage modifyhd "xxx.vdi&quo ...
- Caffe CNN特征可视化
转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 以下部分代码是根据caffe的python接口,从一次forwo ...
- Appium学习实践(二)Python简单脚本以及元素的属性设置
1.简单的Python脚本 Appium中的设置与Appium学习实践(一)简易运行Appium中的一致 Launch后,执行脚本 #coding:utf-8 import unittest impo ...