1. GET  URL长度限制

在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端 必须能够处理任何它们所提供服务多能接受的URI,并且能够处理无限长度的URI,如果服务器不能处理过长的URI,那么应该返回414状态码。

虽然Http协议规定了,但是Web服务器浏览器对URI都有自己的长度限制。

服务器的限制:我接触的最多的服务器类型就是Nginx和Tomcat,对于url的长度限制,它们都是通过控制http请求头的长度来进行限制 的,nginx的配置参数为large_client_header_buffers,tomcat的请求配置参数为 maxHttpHeaderSize,都是可以自己去进行设置。

  client_header_buffer_size 512k;
large_client_header_buffers 7 512k;

浏览器的限制:每种浏览器也会对url的长度有所限制,下面是几种常见浏览器的url长度限制:(单位:字符)

  • IE : 2803

  • Firefox:65536

  • Chrome:8182

  • Safari:80000

  • Opera:190000

对于get请求,在url的长度限制范围之内,请求的参数个数没有限制。

2. Post数据的长度限制

Post数据的长度限制与url长度限制类似,也是在Http协议中没有规定长度限制,长度限制可以在服务器端配置最大http请求头长度的方式来实现。   nginix默认限制1M

可以选择在http{ }中设置:client_max_body_size   20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者到区别是:http{} 中控制着所有nginx收到的请求。而报文大小限制设置在server{}中,则控制该server收到的请求报文大小,同理,如果配置在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。
http{
#控制全局nginx所有请求报文大小
#client_max_body_size 20m;
server{
#控制该server的所有请求报文大小
#client_max_body_size 20m;
location a { }
location b{
#控制满足该路由规则的请求报文大小
#client_max_body_size 20m; }
}
server { }
}

3. Cookie的长度限制

Cookie的长度限制分这么几个方面来总结。

(1) 浏览器所允许的每个域下的最大cookie数目,没有去自己测试,从网上找到的资料大概是这么个情况

  • IE :原先为20个,后来升级为50个

  • Firefox: 50个

  • Opera:30个

  • Chrome:180个

  • Safari:无限制

当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

(2) 浏览器所允许的每个Cookie的最大长度

  • Firefox和Safari:4079字节

  • Opera:4096字节

  • IE:4095字节

(3) 服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。

 
 

最新文章

  1. zerojs! 造出最好的 CMS 轮子
  2. 我的第一个开源项目-logger4Net
  3. 关于JAVA学习计划和感想
  4. 【代码笔记】iOS-时间选择框
  5. 线程安全集合 ConcurrentDictionary<TKey, TValue> 类
  6. js generator数据类型
  7. csuoj 1329: 一行盒子
  8. MySQL5.7 JSON实现简介
  9. vs 2005 在IE下断点不起作用
  10. FireFox VS Chrome 之 调试篇
  11. git基本使用(搭建Git服务器)
  12. [LeetCode] Longest Word in Dictionary 字典中的最长单词
  13. 1045. Favorite Color Stripe (30) -LCS允许元素重复
  14. 监控与管理dubbo服务
  15. 软件配置管理及SVN的使用
  16. 【译】索引进阶(八):SQL SERVER唯一索引
  17. 41-ssm中对象查找正确但是没有将数据库中某个属性值赋给对象的一个成员变量
  18. 一个对眼睛很好的vim 颜色主题
  19. artificial%20intelligence%20a%20modern%20approach
  20. 20159212杨翔实验一(熟悉Java开发环境)实验报告

热门文章

  1. BZOJ.4298.[ONTAK2015]Bajtocja(Hash 启发式合并)
  2. unity 背景无限循环滚动效果
  3. mysql 跨表更新
  4. 回顾MySQL中的事务特征
  5. ADC and DAC Analog Filters for Data Conversion
  6. 学员会诊之02:SVN协作以及Page类的设计
  7. 你应该更新的 Java 知识之常用程序库【转载】
  8. ubuntu16 64位 编译64位程序和32位程序
  9. 为什么用svg放弃了iconfont?
  10. settings.xml配置详解