起因
今天在调试Ucenter的同步登陆和同步登出的过程中,浏览器突然出现以下错误提示:
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.

开始是以为P3P协议设置cookie的问题,查阅了P3P的文档,没有相关的条目。经过不懈的搜索,终于发现原来是Apache中资源使用限制的设置问题。

技术背景
Apache中“资源使用限制”就是要限制用户对网站特定资源(如目录、服务器硬件等)的访问。相关指令包括:LimitRequestBody、
LimitRequestFields、LimitRequestFieldSize、LimitRequestLine、RLimitCPU、
RLimitMEM、RLimitNPROC和ThreadStackSize。LimitRequest*系列指令用来限制Apache在读取客户端请
求的过程中使用的资源数量。通过限制这些值,可以减轻某些拒绝服务(DOS)攻击;RLimit*系列指令限制被Apache子进程所派生的进程使用的资
源数量,通常这些指令用来控制CGI脚本和SSI exec命令所使用的资源;ThreadStackSize指令在某些平台上用来控制堆栈大小。

LimitRequestLine
LimitRequestLine指令用来限制接收客户端发送的HTTP请求行的字节数,允许服务器管理员增加或减少客户端HTTP请求行允许大小的限
制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载
它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。

LimitRequestFieldSize
LimitRequestFieldSize指令用来限制客户端发送的请求头的字节数,允许服务器管理员增加,或减少HTTP请求头域大小的限制。一般来
说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器
以支持更多的内容协议密切相关。

LimitRequestLine和LimitRequestFieldSize指令给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。默认值为“8190”。

解决
在Apache的httpd.conf配置文件中(直接加就可以)
LimitRequestLine 40940
LimitRequestFieldSize 40940
问题解决。

或者清除下本机中本域的Cookie也行。

Apache中Cookie长度的设置 414 request-uri too large apache的更多相关文章

  1. flask中cookie和session设置

    flask中cookie和session介绍   一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户. ...

  2. golang-在gin中cookie跨域设置(配合ajax)

    1.当我在golang中,在前后端分离的情况下使用cookies时发现,跨域没有被允许.代码如下: func AccessJsMiddleware() gin.HandlerFunc { return ...

  3. Flask中cookie和session设置与csrf原理攻防

    Flask之操作cookie app.py from flask import Flask, request, Response app = Flask(__name__) @app.route('/ ...

  4. Windows下Apache应用环境塔建安全设置(目录权限设置)

    目的:为Apache,php配置受限制的用户权限.保护系统安全.需要的朋友可以参考下. 环境配置情况: apache安装目录:d:\www-s\apache php目录:d:\www-s\php5 m ...

  5. php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL

    php在apache中一共有三种工作方式:CGI模式.FastCGI .FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内存中并因 ...

  6. nginx解决超长请求串(413 request Entity too Large错误解决办法)

    <div class="hide-article-box text-center" style="display: block;"> <a c ...

  7. 2.在程序中如何实现Cookie信息的设置,读取和删除

    设置:你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookies.这些文件通常是以user@domain格式命名的,user是你的本 ...

  8. Django中的session和cookie及分页设置

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  9. 如何在 Apache 中为你的网站设置404页面

    一个好的网站,拥有一个好的 404页面 是标配. 为何要有 404页面?如何设置一个 404页面? why 404 pages? 在本地,比如我打开 localhost/fuck.htm(该文件不存在 ...

随机推荐

  1. 读《深入理解Elasticsearch》点滴-改善查询相关性

    1.标准查询 query match _all query:"搜索字符串" operator:or 2.多匹配查询+区分权重 query multi_match "que ...

  2. Spring Boot 2.X(五):MyBatis 多数据源配置

    前言 MyBatis 多数据源配置,最近在项目建设中,需要在原有系统上扩展一个新的业务模块,特意将数据库分库,以便减少复杂度.本文直接以简单的代码示例,如何对 MyBatis 多数据源配置. 准备 创 ...

  3. 你也可以写聊天程序 - C# Socket学习1

    简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单的聊天程序. 一些基础类 首先我们每天打开浏览器访问网页信 ...

  4. 设计模式 - 动态代理原理及模仿JDK Proxy 写一个属于自己的动态代理

    本篇文章代码内容较多,讲的可能会有些粗糙,大家可以选择性阅读. 本篇文章的目的是简单的分析动态代理的原理及模仿JDK Proxy手写一个动态代理以及对几种代理做一个总结. 对于代理模式的介绍和讲解,网 ...

  5. KEIL软件中编译时出现的Error L6200E: symbol multiply defined ...的解决方法

    原因:如LCD.C文件使用了bmp.h中的image[ ]变量,那么就不能将#include"bmp.h"放在LCD.H中,要将#include"bmp.h"放 ...

  6. BZOJ 1345: [Baltic2007]序列问题Sequence

    1345: [Baltic2007]序列问题Sequence Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 1180  Solved: 633[Subm ...

  7. 统计字符的个数,能够组成几个acmicpc

    Problem F. String Input file:                  standard input Output file:               standard ou ...

  8. Hive 官方手册翻译 -- Hive DML(数据操纵语言)

    由 Confluence Administrator创建, 最终由 Lars Francke修改于 八月 15, 2018 原文链接 https://cwiki.apache.org/confluen ...

  9. Java源码解析|HashMap的前世今生

    HashMap的前世今生 Java8在Java7的基础上,做了一些改进和优化. 底层数据结构和实现方法上,HashMap几乎重写了一套 所有的集合都新增了函数式的方法,比如说forEach,也新增了很 ...

  10. 关于_GNU_SOURCE宏

    是在features.h中用于特性控制的一个功能测试宏 /user/include/features.h /* If _GNU_SOURCE was defined by the user, turn ...