您好,欢迎访问一九零五行业门户网

HTTP协议对URI长度,POST数据长度及COOKIE长度的限制

http协议对uri长度,post数据长度及cookie长度的限制
1. 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,都是可以自己去进行设置。
浏览器的限制:每种浏览器也会对url的长度有所限制,下面是几种常见浏览器的url长度限制:(单位:字符)
ie : 2803
firefox:65536
chrome:8182
safari:80000
opera:190000
对于get请求,在url的长度限制范围之内,请求的参数个数没有限制。
2. post数据的长度限制
post数据的长度限制与url长度限制类似,也是在http协议中没有规定长度限制,长度限制可以在服务器端配置最大http请求头长度的方式来实现。
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请求头中传递给服务器,因此还会受到服务器请求头长度的影响。
其它类似信息

推荐信息