cnzz統(tǒng)計代碼引起的Bad Request - Request Too Long的原因分析

問題起因
今天一位網(wǎng)友向我們反饋,用Chrome打開某些博客文章時,會出現(xiàn)"Bad Request - Request Too Long. HTTP Error 400. The size of the request headers is too long."的錯誤頁面:
用IE, Firefox都沒問題,唯有Chrome。
之前我們遇到過一次這樣的問題,當時以為是偶然因素引起的Chrome問題,于是在"%LOCALAPPDATA%\Google\"中將Chrome的配置文件重命名,讓Chrome重建配置,解決了問題。
今天,這個問題再次出現(xiàn),就不能忽視了,必須找出問題的真正原因并找到解決辦法。
解決過程
開始我們推測,可能是某些原因造成Chrome發(fā)出的請求頭包含過多內(nèi)容。查看Chrome請求的網(wǎng)址是正常的,也沒發(fā)現(xiàn)Request Header的異常。既然沒在Chrome找到問題的原因,那我們從服務端下手吧,請求長就長一點,只要能讓用戶看到正常的內(nèi)容。
服務端IIS究竟在哪個地方返回這個錯誤的?開始以為是Request Filtering Module,調(diào)整了Request Limits設置不能解決問題,禁用Request Filtering Module也解決不了問題。
后來在IIS官方論壇的帖子HTTP 400. The size of the request headers is too long中得知,這個錯誤是Http.sys返回的,請求頭長度限制是由注冊表HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters中的兩個參數(shù)決定的:MaxFieldLength與MaxRequestBytes,缺省值都是16384字節(jié),詳見Http.sys registry settings for IIS。
由于修改這兩個設置需要重啟IIS(net stop http, net start http, iisreset),并且只是表面上解決問題,所以我們沒有立即采取這個方法。又回過頭來在Chrome中查看請求頭,突然發(fā)現(xiàn)cookie的值好長。
進一步查看cookie:
很多cnzz_eid,這是cnzz統(tǒng)計代碼產(chǎn)生的,可是我們在博客中沒有使用cnzz。但是,有的用戶博客自己加了cnzz的統(tǒng)計代碼。我們檢查了一些會產(chǎn)生"Bad Request - Request Too Long"的頁面,的確有些加了cnzz的代碼。
我們手動在Chrome中刪除了一些帶有cnzz_eid的cookie,問題就解決了。
原來是cnzz惹的禍!
為什么在IE與Firefox中不會出現(xiàn)這個問題呢?
可能是IE與Firefox對于request header過長的請求會自動截斷;而Chrome對此置之不理。
小結(jié)
這篇文章分享的內(nèi)容是:當IIS返回"Bad Request - Request Too Long. HTTP Error 400. The size of the request headers is too long."的錯誤時,說明客戶端發(fā)出的請求頭長度超出了Http.sys的限制,這個限制是由注冊表"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters"中的兩個參數(shù)MaxFieldLength與MaxRequestBytes決定的,默認值是16384字節(jié)。
相關(guān)文章
- 站點出于隱私的考慮不希望百度保留快照,網(wǎng)上也在不停地討論如何禁止百度保留快照的方法,那么,到底該如何禁止百度保留快照呢?本文將提供noarchive代碼禁止百度保留快照2015-12-30
- 網(wǎng)站的運營,發(fā)展到今天,網(wǎng)站通用部分的功能,很多已經(jīng)有了非常成熟的產(chǎn)品插件可以使用,比起獨立開發(fā)的耗時、維護,以及還有產(chǎn)品不成熟的風險,這些網(wǎng)站的功能插件確實非2015-12-21
移動建站再現(xiàn)大招 只需要在網(wǎng)站加入一行代碼就能把PC網(wǎng)站搬到手機上
只需要在網(wǎng)站加入一行代碼,在幾個小時之內(nèi)就能擁有一個精美的手機網(wǎng)站?!這是搜狐快站最新推出的快適配即可實現(xiàn)的神奇功能。下面我們來看看它是如何使用的2014-10-24- 在CSS建站中,無論其代碼長度還是文件大小都會影響到網(wǎng)頁的正確展示盒速度。那么如何來進行CSS的優(yōu)化和驗證呢?如果你的css水平不能夠達到自檢的程度,那么今天就和筆者一2014-10-11
SEO優(yōu)化之HTML代碼優(yōu)化最重要的5個標簽
眾所周知,HTML代碼一直是搜索引擎抓取的重點。搜索引擎會將HTML中的某些元素標簽作為影響網(wǎng)頁排名的重要依據(jù)2014-04-15- 隨著360搜索引擎的出現(xiàn),在短短一年內(nèi)360占有的份額達到了10%以上,百度為了在眾多搜索引擎中占有不敗之位,在不斷的改革中。那么針對seo未來發(fā)展之路該走向何方2014-03-16
- 我們在谷歌所做事情中另外一個讓我感到異常有效、有用的制度是嚴格的編碼規(guī)范2013-09-28
- 百度在搜索結(jié)果中偏愛自己的產(chǎn)品是無用質(zhì)疑的,所以,越來越多的站長決定給網(wǎng)站頁面加上百度分享代碼2013-09-24
Web開發(fā):關(guān)于16進制顏色代碼你又知道多少
RGB:RGB色彩模式是工業(yè)界的一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道2013-08-23SEO統(tǒng)計數(shù)據(jù)分析:Google排名高的網(wǎng)頁特點有哪些?
什么樣的網(wǎng)頁排名較高呢?本文將提供SEO統(tǒng)計數(shù)據(jù)分析Google排名高的網(wǎng)頁特點匯總供大家了解,希望對大家有所幫助和啟發(fā)2016-01-28