问题起因

今天一位园友向我们反馈,用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字节。

转载于:https://www.cnblogs.com/dudu/archive/2012/06/06/bad_request_request_too_long.html

cnzz统计代码引起的Bad Request - Request Too Long相关推荐

  1. CNZZ 统计代码及作弊分析

    CNZZ,中国站长联盟的论坛统计服务,是比较常用的~~ 现在我们来分析一下~~ 开通 CNZZ 的统计服务之后,可以获得一串统计代码,如下,是我的某主页的统计代码. <script src='h ...

  2. 隐藏CNZZ统计代码

    CNZZ有很强大的统计能力,但是有些时候有不想显示"站长统计"或者那个一跳一跳的小图标,想把它们隐藏起来.可以通过如下代码隐藏. <div sytle="displ ...

  3. 隐藏51la、cnzz统计图标方法及隐藏统计代码方法

    cnzz统计代码如下: <!-- 统计开始--> cnzz统计代码 <!-- 统计结束--> 这个是会显示官方图标的:现在只要用DIV给隐藏掉就OK了,代码前加<div ...

  4. php跳转 不能加cnzz统计,页面添加友盟(CNZZ)统计和事件追踪

    1. 在页面中引入友盟(CNZZ)统计的 JS 代码 // 统计 var cnzz_protocol = (("https:" == document.location.proto ...

  5. php+pv统计代码实现,Laravel 10 行代码实现简单的网站 pv uv 统计

    最近在优化博客呀,想做一个统计网站 pv uv 的功能,虽然有第三的统计平台再用,但还是想自己写一个啊. 其实统计的数据非常简单,就是网站的访问量丶访客量. public function __con ...

  6. python 字典字符串转字典——urllib.request.Request发送get,post请求,发送json参数

    1.eval方法即可[字典字符串转字典] file_content = eval(file_content) 2.urllib.request.Request发送post请求,发送json参数 fro ...

  7. python网络爬虫系列(一)——urllib库(urlopen、urlretrieve、urlencode、parse-qs、urlparse和urlsplit、request.Request类)

    urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. 一.urlopen函数: 在Python3的url ...

  8. 从统计代码来谈JS加载的优化

    我有这么一个职业病,每次发现页面很卡,不管谁的网站,都会F12调出Chrome控制台来调试,看看是什么原因导致. 原因其实不外乎这几种: 1.页面文档的加载 2.css/js 的加载 这边就 js 说 ...

  9. 安装51统计代码到html,51La 统计代码放到哪里??

    近期很多站长都在咨询如何在自己的站点添加统计代码,下面为大家详细介绍具体的步骤: 一.如何获取统计代码 提供免费统计的网站有很多,比如:51la.雅虎.cnzz....等等,下面就以 51la 做例子 ...

最新文章

  1. 拒绝从入门到放弃_《Openstack 设计与实现》必读目录
  2. 网课助手浏览器版怎么更新_MIUI版本更新动态:跨屏协作来袭(第57期)
  3. SoapUI工具中的用户名和密码如何用net代码实现传入
  4. python调用sdk的文章_如何使用 python 接入虹软 ArcFace SDK
  5. vscode主题 webstorm_从 Emacs 和 Vim 到 VSCode
  6. 文件上传~Uploadify上传控件~续(多文件上传)
  7. 怎样才能算是在技术上活跃的小公司
  8. iOS数据库的使用(一):FMDB多线程
  9. vector_capl
  10. ssh框架超详细总结
  11. java 生成纯色图片_浅谈Java设置PPT幻灯片背景——纯色、渐变、图片背景
  12. 微信小程序uniapp高德开放平台路线规划1对多导航路线方法记录
  13. 视觉SLAM入门 -- 学习笔记 - Part3
  14. fNIRS在发育科学中的应用
  15. [转]信息安全相关理论题(二)
  16. 计算机网络故障与维护方法,试论计算机网络故障处理及维护方法
  17. Python 算法训练之摩斯电码
  18. 描写妙龄少女句子赏析
  19. Python由来以及用途
  20. Graph Theory 离散数学第六章

热门文章

  1. 数字技术对就业的影响分析
  2. 物联网时代 人工智能如何与信息安全平衡发展?
  3. 新型量子计算机首个基本元件问世,扩展性更强运算速度更快
  4. 程序员如何避免陷入内卷?
  5. 窃隐私、放高利贷,输入法的骚操作真不少!
  6. [译] React 路由和 React 组件的爱恨情仇
  7. TCP/IPICMP报文的分类
  8. 海量数据处理相关面试问题
  9. C# 真正能发邮件的源码
  10. 关于数据中心Tier标准的理解误区