瀏覽器重定向(302)次數限制問題


   問題:今天收到反饋說退出在IE8下,出現問題,無法正常完成退出和跳轉。

 
    接着對造成該問題的原因進行了排查,發現退出的接口使用了跳轉的方式遍歷了一遍白名單域名,來進行退出所有的域。在網上搜索了一下這樣做會有什么問題,了解到不同的瀏覽器對重定向的次數也不相同,當重定向次數超過瀏覽器的限制的時候,頁面會出現404訪問不到的現象。那我們的退出會不會也是這種問題呢?
 
    進而了解到ie7 8的重定向次數限制為10次,經過抓包發現,剛好在第十一次跳轉的時候頁面變成了404,進一步印證了這個猜想。通過改變重定向次數發現,ie8下的退出的問題,正由於上周五服務端給域名列表里加了一個域名,導致302跳轉次數增加超過ie8的限制,出現了這個問題。
 
    解決方案:減少了一個域名配置,並提供了接口形式的退出方式,進而避免了這個問題。
 
    擴展:既然每個瀏覽器對重定向次數限制不一樣,那么什么是重定向限制?各主要瀏覽器版本的限制次數是多少?怎么查看?能不能設置呢?下面進行詳細說明:
 
    1.什么是重定向限制?
    答:重定向限制是指瀏覽器設置,限制你的瀏覽器的次數。會接受“重定向”從一個主機到另一個。例如,一個網站可能已經從一個服務器或URL移動到另一個技術或其他原因,為了更方便用戶,網站所有者可以實施了一項命令,告訴瀏覽器自動走到另一個位置(重定向)。重定向限制錯誤可能發生無意中當一個web頁面或頁面無意中創建一個循環。例如,如果頁面重定向到本身,或B頁面重定向回頁面,那么您的web瀏覽器將開始構建連接在循環的每一根琴弦,直到超過限制
 
    2.各主要瀏覽器限制次數是多少? 
瀏覽器版本
限制次數
備注
chrome
20
這個是測試數據
firefox
20
 
ie7 8
10
 
ie9
110
從IE9即增加這個值乘以一個系數(11)。因為MaxHttpRedirects的默認值是10,重定向限制自IE9將10 * 11 = 110
    3.怎么查看?能不能設置?
    答:如果您使用的是Firefox,您可以查看和更改你重定向限制通過輸入“about:config”到地址欄和尋找“network.http.redirection-limit”,並且可以進行修改。如果是IE,這個限制可以改變通過添加以下注冊表鍵,
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM