您好、欢迎来到139彩票网!全国聊天QQ群:67866775
锟斤拷锟斤拷锟节碉拷位锟斤拷: 福利彩票双色球开奖结果_双色球开奖结果走势图_福彩双色球开奖结果查询 > 139彩票资讯 > > 锟斤拷锟斤拷

深度解析各种网站页面跳转方式原理流程及优劣势分析对比

锟斤拷锟斤拷锟斤拷福利彩票双色球开奖结果_双色球开奖结果走势图_福彩双色球开奖结果查询 锟斤拷源锟斤拷未知 锟斤拷锟斤拷:admin 时锟斤拷:2018-02-08 16:42

  雅虎彩票雅虎彩票雅虎彩票39彩票网39彩票网39彩票网大奖365大奖365大奖365什么是页面跳转,为什么页面跳转,怎么进行页面跳转。关于网页跳转技术很多,文章也很多,方法代码都很多,但是这些方法差别在那里,那些方法速度快,那些方法灵活,那些方法用户能感觉到,为什么能感觉到。我看了一些文章,结合多年的工作经验,通过绘制序列图等办法简单总结一下,换个角度理解一下,希望对大家有所帮助!

  本文重点在于比较http跳转,html跳转,js跳转的工作流程,以及重点分析他们在时间开销上的情况,同时我们重点在于绘制一些图形,然后希望读者能够从图中体会到区别,需要读者体会的地方都用特别区域标识出来了。请大家注意。

  网站都是由各种各样页面组成,正常情况下A页面里面包含B页面,C页面的链接,用户在浏览A页面过程中,手工人为点击B链接,然后用户浏览器就显示到B页面。这个过程我们就可以叫页面跳转。

  我们显然不是说这种页面跳转。我们考虑如下场景,一个网站由A,B,C页面构成。正常他们有他们自己显示内容。随着时间推移,发现A页面内容应该同C页面内容相同,但是由于A页面已经被大量用户收藏在浏览器的收藏夹中,或者被搜索引擎收录,若是现在取消A页面的地址(就是取消页面),则对用户是个非常糟糕的事情,但是同时维护两个页面A及C又是个麻烦的事情,稍有疏忽就会造成内容不一致,给用户造成困惑,同时搜索引擎也会不认可。 如何保证A地址不取消,同时又准确保证两个页面显示内容相一致?

  我们今天要解决的是在没有用户干预下的页面跳转,完成当用户需要显示页面A时,我们给他显示页面C的内容。

  另外为了说明问题方便,我们同时也假设页面B内容也指向内容C,只是采用跳转技术不一样,这样我们方便区别两种行为的差别。

  如上图中,展示了用户访问服务器获取页面的一个基本过程。图中主要分为两个部分,左侧区域是用户端, 右侧区域是服务端,用户端的用户通过手机或者电脑或者智能设备访问服务端页面。

  服务端由若干页面构成,这里简化了服务端行为,并且抽象成三个页面A,B,C,正常情况下服务端应该有很多Action对象,Action对象同页面相对应,提供各种服务,我们仅仅简化Page:A, Page:B, Page:C

  用户端就是手机, 包括手机操作操作系统, 网络层(tcp/ip/udp等),http等协议层,以及浏览器,浏览器内部进行html的解析,css渲染,js执行引擎等等。

  11. 处理装载事件Onload(已经开始js的执行,在装入数据过程中已经可以执行一些js事件,具体要根据页面以及浏览器特性而定)

  页面跳转发生在服务端,服务端负责将实际内容获取,然后发送给客户端,这个情况下,一般用户不会感觉到跳转的实际行为,因此有些时候我们也不叫做跳转。具体的服务端跳转行为有很多,各个技术都有各自的特点,例如: Struts2基于注解服务端跳转、<request.getRequestDispatcher(“xx.jsp”).forward(request,response)、<jsp:forward page=””/ >等,php也有自己的放回,总之各自有各自的办法,大家自己去搜索吧。

  跳转行为需要客户单程序参与的一种行为(自然不是用户参与的,那个不是本文讨论的)。在这个过程中,一般用户一定会知道的,浏览器地址栏会发生变化,这个分类比较多,我们专门进行一个分类。

  二)用户端跳转中,我们根据跳转行为发生在那个软件层次,分为:http层跳转、应用层跳转;应用层跳转继续分为:html head跳转、js跳转等。

  http跳转是指server根据工作情况通过http返回状态码,指示客户端浏览器跳转到相应页面的过程,一般返回码是302.,下面是http302状态码的定义:

  页面跳转显示的内容发生在服务端,服务端负责将实际内容获取到,然后发送给客户端。一般用户不会感觉到跳转的实际行为,因此有些时候我们也不叫做跳转

  通过server跳转后,用户看到的是PageC的内容,但是浏览器地址栏中地址是PageA的地址。

  优点:跳转行为在server进行, 一次tcp连接完成相关操作,对用户是透明的,不会造成疑惑。

  server端功能各异,需要分工负责,当用户访问某功能后,需要返回另外一个功能,这个时候没必要把全部功能都放到一个服务器上。

  http跳转是指server根据工作情况通过http返回状态码,指示客户端浏览器跳转到相应页面的过程,一般返回码是302.,下面是http302跳转的相关参考流程

  4. PageB内容指向PageC,PageB的处理模块通过http的重定向协议通知客户端程序,通过发送消息,302,以及跳到目的地址等进行

  优点:相应速度快,在http1.1协议下通过合适的设置可以使用同一个tcp连接,节省网络时间,服务器及用户端都不需要进行额外的数据处理工作,节省时间。

  缺点:仅仅能做跳转没有其他功能,基于js及html的跳转可以选择延时跳转,但是302无法选择延时跳转等

  通过在html head中添加<meta>标签,在标签里指定相关参数,指示浏览器跳转到相应页面,相关跳转必须在http层面将html数据传输给浏览器后,浏览器解释html代码过程中,发现跳转并且根据跳转指令跳转到相应页面。

  4. PageB处理模块处理数据,生成html代码,最后将html通过http协议传输回去。

  最后来看一下js跳转,工作中每个浏览器都有自己的js执行引擎,执行引擎根据js代码,来动态调用浏览器进行跳转,相关参考代码如下:

  3. http处理模块同服务器建立tcp连接同server建立连接,并发出请求获取PageB

  4. PageB处理模块处理数据,生成html代码,最后将html通过http协议传输回去。

  8. 最后根据js的指令指示浏览器获取页面C浏览器会根据跳转指令,重新联系http模块,发出获取PageC的指令

  跳转的方法有很多,无法一一列举,当我们适用时如何选择那种类别时,需要弄明白每一种跳转的特点,包括:性能,功能等

  根据不同网络情况进行不同的选择,例如有的网络建立tcp连接速度慢,这个时候就适宜选择server端的跳转等

  若是保证系统之间的耦合关系更小,系统之间更灵活则需要采用http方式跳转、js跳转,html跳转等。

  有的时候需要在跳转前进行一些判断或者额外的操作等,就是js跳转比较方便,但是也有个浏览器适配的问题。有时候一个js兼容性不好的js代码可能不工作,造成部分用户无法跳转。

  1. 不跳转,但是不可能完全避免,并且不太可能实现,一般系统都是开放的系统,会不断添加功能,即使当前没有跳转,但是过几个月。。。。。。

  3. 最重要的,监控系统,当发现某个客户端或者系统在单位时间内有过多的访问时,主动断开连接或者拒绝这个客户端的访问等等。这个非常重要,一个好的系统是必须有这个功能的,否则即使没有循环跳转,但是若是用户连续快速访问一个页面也是有很大问题的,例如ie中按下F5键 循环刷新页面,若是没有检测机制。。。。

  更多黑帽SEO技术请关注黑帽客(),一个专注黑帽SEO优化排名技术研究与学习教程分享的网站!

  分享最新黑帽SEO优化快速排名技术和学习教程以及最新站群寄生虫蜘蛛池等软件程序并提供黑帽SEO技术性问题解答和灰色词SEO优化排名代做等服务。

锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
锟斤拷品图片锟截诧拷锟狡硷拷
Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有