浏览器重定向(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,這個限制可以改變通過添加以下注冊表鍵,
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
總結
以上是生活随笔為你收集整理的浏览器重定向(302)次数限制问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android】 横向纵向滚轮控件
- 下一篇: 求二叉树中节点的最大距离