首页 网站运营正文

400 Bad Request Request Header Or Cookie Too Large

我的街拍网站www.2s5s.com 一直都用着挺正常的,但是今天突然发现多开几个页面后,就报400 Bad Request Request Header Or Cookie Too Large错误,同时再打开这个网站的其它页面也一样的。难道是服务器nginx 问题?

服务器上重新启动一下nginxd,发现还是一样的。那不是服务器问题啊,我换个浏览器一试,果然都是正常的。

那么出现400 Bad Request Request Header Or Cookie Too Large 错误是怎么产生的呢?


QQ截图20161027003315.png



经过找资料,发现有一篇写的很详细,解释的很清楚。包括解决400 Bad Request Request Header Or Cookie Too Large的思路和方法。

--------------------------------------------------------------------------------------

<div style="color: rgb(0, 0, 0); font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">有时候停留在同一个网站不断的浏览页面时,突然会出现一个400的访问错误:

<div style="color: rgb(0, 0, 0); font-family: 微软雅黑; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">400 Bad Request
Request Header Or Cookie Too Large

这个时候400错误一般不会是浏览器的问题,查看一下http请求状态,发现已经请求到了服务器,而且也给出了响应。
一般来说,出现4XX的错误情况时,可以基本定向为客户端请求有误导致的。

Request Header Or Cookie Too Large ,说明请求的头域有问题,应该是头域请求的长度太长了,超出了服务器配置的最大限度。
这个时候,可以更改服务器的配置文件,其实也没有修改服务器的配置,再说header内容过长本来就不应该出现的,所以应该更改web程序或者设置客户端浏览器。

看一下,发现请求域名下面的cookie还真的很大。所以处理cookie的问题还是最主要的。

从客户端出发,为了不影响访问应该把该域名下的cookie清空,或者删除一些长度较大的cookie,处理完就可以正常访问了。

程序这边的考虑:
客户端请求时,附带的cookie信息会在header域里的Cookie属性里,内容过多时,避免不了影响请求效率,而且随着用户访问浏览的东西越多,根据这种机制,cookie肯定也会越来越大,
久而久之,超过服务器的配置限制,导致返回了400的错误。

为了防止cookie信息过大,
设置cookie时可以适宜调整一下过期时间,
或者压缩一下cookie值的内容,
或者去掉一些冗余的信息值,
或者根据不同的公共host选择不同的根域,

如果是做判断用的,可以只存校验的md5后的值等等都是解决的办法


评论

精彩评论

热门文章