首页 > 代码库 > 解决Bug:Size of a request header field exceeds server limit

解决Bug:Size of a request header field exceeds server limit

用了cms 发现这玩意真不好,老是有各种奇芭的问题跳出来

有时浏览网页时会出现
Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.

意思为:错误的请求。您的浏览器发送一个请求,该服务器无法理解。一个请求头域的大小超过服务器的限制.

以下是解决方法,不过,我个人感觉,不可能无限制的增大请求头的大小,所以,还是需要花点时间清理一下 cookie,一定是cookie调用太多,导致请求头数据大了的缘故。

一般情况为cookie设置的太多了,导致请求头信息过大。
这个跟服务器的设置有关
LimitRequestLine指令用来限制接收客户端发送的HTTP请求行的字节数,允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载 它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。
LimitRequestFieldSize指令用来限制客户端发送的请求头的字节数,允许服务器管理员增加,或减少HTTP请求头域大小的限制。一般来 说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器 以支持更多的内容协议密切相关。
LimitRequestLine和LimitRequestFieldSize指令给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。默认值为“8190”。

解决办法:
1、技术人员可以修改配置文件
在Apache的httpd.conf配置文件中添加

LimitRequestLine 40940LimitRequestFieldSize 40940

2、用户可以清除浏览器的cookie记录