• 浏览器重定向(302)次数限制问题


        问题:今天收到反馈说退出在IE8下,出现问题,无法正常完成退出和跳转。
     
        接着对造成该问题的原因进行了排查,发现退出的接口使用了跳转的方式遍历了一遍白名单域名,来进行退出所有的域。在网上搜索了一下这样做会有什么问题,了解到不同的浏览器对重定向的次数也不相同,当重定向次数超过浏览器的限制的时候,页面会出现404访问不到的现象。那我们的退出会不会也是这种问题呢?
     
        进而了解到ie7 8的重定向次数限制为10次,经过抓包发现,刚好在第十一次跳转的时候页面变成了404,进一步印证了这个猜想。通过改变重定向次数发现,ie8下的退出的问题,正由于上周五服务端给域名列表里加了一个域名,导致302跳转次数增加超过ie8的限制,出现了这个问题。
     
        解决方案:减少了一个域名配置,并提供了接口形式的退出方式,进而避免了这个问题。
     
        扩展:既然每个浏览器对重定向次数限制不一样,那么什么是重定向限制?各主要浏览器版本的限制次数是多少?怎么查看?能不能设置呢?下面进行详细说明:
     
        1.什么是重定向限制?
        答:重定向限制是指浏览器设置,限制你的浏览器的次数。会接受“重定向”从一个主机到另一个。例如,一个网站可能已经从一个服务器或URL移动到另一个技术或其他原因,为了更方便用户,网站所有者可以实施了一项命令,告诉浏览器自动走到另一个位置(重定向)。重定向限制错误可能发生无意中当一个web页面或页面无意中创建一个循环。例如,如果页面重定向到本身,或B页面重定向回页面,那么您的web浏览器将开始构建连接在循环的每一根琴弦,直到超过限制
     
        2.各主要浏览器限制次数是多少? 
    浏览器版本 限制次数 备注
    chrome 20 这个是测试数据
    opera 20  
    safari 15  
    firefox 20 第20次就不可用了
    ie7 8 10 IE其他版本,可以通过下面的测试方法就行测试
    ie9 110 从IE9即增加这个值乘以一个系数(11)。因为MaxHttpRedirects的默认值是10,重定向限制自IE9将10 * 11 = 110
      备注查看方法:使用不同的浏览器访问 http://maoshuai.sinaapp.com/cnblog/302test.php,查看url参数就是最大限制次数;IE无法查看url,可通过抓包查看。
        3.怎么查看?能不能设置?
        答:如果您使用的是Firefox,您可以查看和更改你重定向限制通过输入“about:config”到地址栏和寻找“network.http.redirection-limit”,并且可以进行修改。如果是IE,这个限制可以改变通过添加以下注册表键进行修改。
    HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings
    Value: MaxHttpRedirects
    Type: DWORD 

    其他浏览器暂时没有找到如何设置的方法,如果你知道,欢迎留言告诉我,非常感谢~

        

        总结:尽量减少使用302进行多次跳转,如果必须这样可以尝试使用别的方法就行处理~

     

        参考文献:

        http://webdebug.net/2014/02/ie-redirection-limit/

        http://yueyemaitian.iteye.com/blog/1705586

        http://stackoverflow.com/questions/9384474/in-chrome-how-many-redirects-are-too-many
        
  • 相关阅读:
    asp.net mvc 国际化(2) 解决问题
    asp.net mvc 国际化(1) 国际化的基础
    Silverlight自学笔记布局基础
    ASP.NET MVC form验证
    Expression Tree 入门
    JQuery 思维导图
    HashMap的Put方法(二)
    HashMap的构造函数(三)
    HashMap的数据结构(一)
    HashMap之扩容resize(四)
  • 原文地址:https://www.cnblogs.com/xiaoheimiaoer/p/3636894.html
Copyright © 2020-2023  润新知