评论:当我们用Chrome打开一些博客文章时,我们会有太长的坏请求请求。HTTP错误400。两个点的错误页的大小。





问题的原因

今天,有网友向我们反馈说,当我们用Chrome打开一些博客文章时,会有糟糕的请求请求太长。HTTP错误400。的大小



IE浏览器,Firefox没有问题,只有Chrome。

我们以前遇到过这样的问题。我们认为这是由偶然因素造成的铬问题。所以我们重命名配置文件中的铬% localappdata % 谷歌和重构配置Chrome解决问题。

今天,这个问题再也不能忽视了,我们必须找出问题的真正原因并找到解决办法。

求解过程

在开始的时候,我们推测,有可能是导致铬的请求头包含太多的内容的一些原因。正常看浏览器请求的URL是,和请求标头的例外是找不到的。因为我们没有发现Chrome中问题的原因,然后我们将从服务器请求的长度长一点,只要用户可以看到正常的内容。

服务器IIS在何处返回这个错误开始认为它是请求过滤模块,调整请求限制设置不能解决问题,禁用请求过滤模块也不能解决问题。

稍后在IIS HTTP 400的官方论坛上。后请求头的尺寸太长,这个错误是由HTTP.SYS,第一请求的长度限制在hkey_local_machine 系统 CurrentControlSet 服务 HTTP 参数注册两个参数确定:maxfieldlength和maxrequestbytes,默认值是16384字节,看HTTP.SYS IIS注册表设置。

由于两设置的修改,我们需要重启IIS(网站http,启动HTTP,IISRESET),只是解决问题的表面上,所以我们不立即采取这个方法。回首请求头在Chrome中,你突然发现cookie的值长。



再看一眼曲奇:



很多cnzz_eid,由CNZZ统计代码生成的,但我们不使用CNZZ的博客。然而,一些用户的博客,自己的博客添加CNZZ代码。我们检查了一些页面,会产生错误的请求请求太长

我们手动删除了一些饼干和cnzz_eid Chrome和问题解决。



这是CNZZ的麻烦。

为什么这个问题不发生在伊江和Firefox

IE和Firefox请求标头过长的请求可能会自动被截断,而Chrome则被忽略。

总结

本文要共享的内容是:当IIS返回坏请求-请求太长时。请求400的HTTP错误大小。标题太长。错误时,请求头长度从客户端超出HTTP.SYS极限,极限是由注册表hkey_local_machine 系统 CurrentControlSet 服务 HTTP 参数中的两个参数maxfieldlength和maxrequestbytes确定,默认值是16384字节。