天天看点

Get/POST方法提交的长度限制 1.    Get方法长度限制 2.    POST方法长度限制



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最大长度减去实际路径中的字符数。

理论上讲,post是没有大小限制的。http协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。

如:在tomcat下取消post大小的限制(tomcat默认2m);

打开tomcat目录下的conf目录,打开server.xml 文件,修改

<connector

debug="0"

acceptcount="100"

connectiontimeout="20000"

disableuploadtimeout="true"

port="8080"

redirectport="8443"

enablelookups="false"

minsparethreads="25"

maxsparethreads="75"

maxthreads="150"

maxpostsize="0"

uriencoding="gbk"

> 

</connector>

增加红色字体部分 maxpostsize="0" (设为0是取消post的大小限制)