1. Get 方法长度限制
Http Get 方法提交的数据大小长度并没有限制, HTTP 协议规范没有对 URL 长度进行限制这个限制是特定的浏览器及服务器对它的限制
如: IE 对 URL 长度的限制是 2083 字节 (2K+35)
下面就是对各种浏览器和服务器的最大处理能力做一些说明.
Microsoft Internet Explorer (Browser)
IE 浏览器对 URL 的最大限制为 2083 个字符, 如果超过这个数字, 提交按钮没有任何反应
Firefox (Browser)
对于 Firefox 浏览器 URL 的长度限制为 65,536 个字符
Safari (Browser)
URL 最大长度限制为 80,000 个字符
Opera (Browser)
URL 最大长度限制为 190,000 个字符
Google (chrome)
URL 最大长度限制为 8182 个字符
Apache (Server)
能接受最大 url 长度为 8,192 个字符
Microsoft Internet Information Server(IIS)
能接受最大 url 的长度为 16,384 个字符
通过上面的数据可知, 为了让所有的用户都能正常浏览, URL 最好不要超过 IE 的最大长度限制 (2083 个字符), 当然, 如果 URL 不直接提供给用户, 而是提供给程序调用, 这时的长度就只受 web 服务器影响了
注: 对于中文的传递, 最终会为 urlencode 后的编码形式进行传递, 如果浏览器的编码为 UTF8 的话, 一个汉字最终编码后的字符长度为 9 个字符
因此如果使用的 GET 方法, 最大长度等于 URL 最大长度减去实际路径中的字符数
2. POST 方法长度限制
理论上讲, POST 是没有大小限制的 HTTP 协议规范也没有进行大小限制, 起限制作用的是服务器的处理程序的处理能力
如: 在 Tomcat 下取消 POST 大小的限制 (Tomcat 默认 2M);
打开 tomcat 目录下的 conf 目录, 打开 server.xml 文件, 修改
- <connector <=""p="" style="word-wrap: break-word;">
- debug="0"
- acceptCount="100"
- connectionTimeout="20000"
- disableUploadTimeout="true"
- port="8080"
- redirectPort="8443"
- enableLookups="false"
- minSpareThreads="25"
- maxSpareThreads="75"
- maxThreads="150"
- maxPostSize="0"
- URIEncoding="GBK"
- >
增加红色字体部分 maxPostSize="0" (设为 0 是取消 POST 的大小限制)
来源: http://www.bubuko.com/infodetail-2535463.html