博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浏览器和服务器 对http请求(post get) url长度限制
阅读量:6324 次
发布时间:2019-06-22

本文共 1700 字,大约阅读时间需要 5 分钟。

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请求头中传递给服务器,因此还会受到服务器请求头长度的影响。

 

 

 

转载地址:http://ykvaa.baihongyu.com/

你可能感兴趣的文章
linux上安装osg_Linux立体配置
查看>>
学python需要掌握知识_零基础学Python应该掌握哪些入门知识?
查看>>
刚体运动学公式_理论力学:运动学
查看>>
android 实现磨砂效果_Android如何实现毛玻璃效果之Android高级模糊技术
查看>>
ctf xss利用_CTF XSS
查看>>
h5物体拖动_javascript html5轻松实现拖动功能
查看>>
cubase怎么添加midi设备_Cubase中MIDI设备的如何创建面板
查看>>
德利捷读码器设置软件_如何检测编码器安全可靠的性能特征?
查看>>
@value 注入静态属性_001 | 搭上SpringBoot自动注入源码分析专车
查看>>
bp神经网络 学习率_BP神经网络的学习原理及过程
查看>>
mysql union group_mysql – 如何一起使用UNION和GROUP_CONCAT
查看>>
mysql三叶草_mysql笔记整理2---数据表查询(重点)
查看>>
php删除mysql一条数据_php如何删除数据库一条信息
查看>>
ftp 主目录 mysql_vsftp 虚拟用户+MySQL认证独立家目录
查看>>
mysql8.018安装教程_mysql8.0.18下安装winx64的详细教程(图文详解)
查看>>
mysql 备份指定数据库命令_MySQL_MySQL备份时排除指定数据库的方法,使用mysqldump命令备份时候,--al - phpStudy...
查看>>
mysql的varchar设置编码_如何在MySQL varchar中使用连字符和数字设置字符串?
查看>>
php mysql 脚本执行sql语句_PHP mysqli_multi_query():一次执行多条SQL语句
查看>>
lamp一键安装包不安装mysql_LAMP一键安装包-CentOS 5/6下自动编译安装Apache,MySQL,PHP...
查看>>
python gui2019_Python又把GUI界面攻下了,这个界面真漂亮啊!
查看>>