admin管理员组文章数量:1530017
一、前言
Http中get与post本身是没有受到长度限制的,受到限制是浏览器与服务器对url长度限制。具体说明请阅读我的零一篇文章《关于 HTTP GET/POST 请求参数长度最大值的一个理解误区》。
二、概述
1、服务器限制
我目前使用的服务器一般是tomcat+nginx,它们都是通过控制http请求头的长度来进行限制 的,nginx的配置参数为large_client_header_buffers,tomcat的请求配置参数为 maxHttpHeaderSize,都是可以自己去进行设置。
2、浏览器限制
浏览器的限制:每种浏览器也会对url的长度有所限制,
下面是几种常见浏览器的url长度限制:(单位:字符)
IE : 2803
Firefox:65536
Chrome:8182
Safari:80000
Opera:190000
3、cookie长度限制
I.浏览器所允许的每个域下的最大cookie数目。
IE :原先为20个,后来升级为50个
Firefox: 50个
Opera:30个
Chrome:180个
Safari:无限制
当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。
II.浏览器所允许的每个Cookie的最大长度。
Firefox和Safari:4079字节
Opera:4096字节
IE:4095字节
III.服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。
三、解决方案
1、tomcat解决请求头长度过长,修改server.xml配置。
2、nginx解决请求头长度过长,修改nginx.conf配置。
#在http标签下增加
client_header_buffer_size 512k;
large_client_header_buffers 4 512k;
版权声明:本文标题:tomcat修改http长度限制_解决浏览器与服务器请求url长度限制 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726624188a1078583.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论