cnzz统计代码引起的Bad Request - Request Too Long的原因分析
问题起因
今天一位网友向我们反馈,用Chrome打开某些博客文章时,会出现"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重建配置,解决了问题。
今天,这个问题再次出现,就不能忽视了,必须找出问题的真正原因并找到解决办法。
解决过程
开始我们推测,可能是某些原因造成Chrome发出的请求头包含过多内容。查看Chrome请求的网址是正常的,也没发现Request Header的异常。既然没在Chrome找到问题的原因,那我们从服务端下手吧,请求长就长一点,只要能让用户看到正常的内容。
服务端IIS究竟在哪个地方返回这个错误的?开始以为是Request Filtering Module,调整了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中的两个参数决定的:MaxFieldLength与MaxRequestBytes,缺省值都是16384字节,详见Http.sys registry settings for IIS。
由于修改这两个设置需要重启IIS(net stop http, net start http, iisreset),并且只是表面上解决问题,所以我们没有立即采取这个方法。又回过头来在Chrome中查看请求头,突然发现cookie的值好长。
进一步查看cookie:
很多cnzz_eid,这是cnzz统计代码产生的,可是我们在博客中没有使用cnzz。但是,有的用户博客自己加了cnzz的统计代码。我们检查了一些会产生"Bad Request - Request Too Long"的页面,的确有些加了cnzz的代码。
我们手动在Chrome中删除了一些带有cnzz_eid的cookie,问题就解决了。
原来是cnzz惹的祸!
为什么在IE与Firefox中不会出现这个问题呢?
可能是IE与Firefox对于request header过长的请求会自动截断;而Chrome对此置之不理。
小结
这篇文章分享的内容是:当IIS返回"Bad Request - Request Too Long. HTTP Error 400. The size of the request headers is too long."的错误时,说明客户端发出的请求头长度超出了Http.sys的限制,这个限制是由注册表"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters"中的两个参数MaxFieldLength与MaxRequestBytes决定的,默认值是16384字节。
相关文章
- 站点出于隐私的考虑不希望百度保留快照,网上也在不停地讨论如何禁止百度保留快照的方法,那么,到底该如何禁止百度保留快照呢?本文将提供noarchive代码禁止百度保留快照2015-12-30
- 网站的运营,发展到今天,网站通用部分的功能,很多已经有了非常成熟的产品插件可以使用,比起独立开发的耗时、维护,以及还有产品不成熟的风险,这些网站的功能插件确实非2015-12-21
移动建站再现大招 只需要在网站加入一行代码就能把PC网站搬到手机上
只需要在网站加入一行代码,在几个小时之内就能拥有一个精美的手机网站?!这是搜狐快站最新推出的快适配即可实现的神奇功能。下面我们来看看它是如何使用的2014-10-24- 在CSS建站中,无论其代码长度还是文件大小都会影响到网页的正确展示盒速度。那么如何来进行CSS的优化和验证呢?如果你的css水平不能够达到自检的程度,那么今天就和笔者一2014-10-11
- 众所周知,HTML代码一直是搜索引擎抓取的重点。搜索引擎会将HTML中的某些元素标签作为影响网页排名的重要依据2014-04-15
- 随着360搜索引擎的出现,在短短一年内360占有的份额达到了10%以上,百度为了在众多搜索引擎中占有不败之位,在不断的改革中。那么针对seo未来发展之路该走向何方2014-03-16
- 我们在谷歌所做事情中另外一个让我感到异常有效、有用的制度是严格的编码规范2013-09-28
- 百度在搜索结果中偏爱自己的产品是无用质疑的,所以,越来越多的站长决定给网站页面加上百度分享代码2013-09-24
- RGB:RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道2013-08-23
- 什么样的网页排名较高呢?本文将提供SEO统计数据分析Google排名高的网页特点汇总供大家了解,希望对大家有所帮助和启发2016-01-28
最新评论