概述
前言
一直以来认为GET请求URL是限制长度的,而长度是随各个浏览器而有差异,POST请求是大小不做限制,但后来项目中第三方post一个很大的数据过来,接口一直受到null值
GET请求长度限制
理论上GET请求数据长度没有限制的,真正起到限制的是浏览器对其长度进行了限制。
为兼容各个浏览器的请求长度,可以总结为:URL长度限制为2083个字符。
下面是各个浏览器对字符长度的具体限制:
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请求大小限制
POST请求理论上也是不限制大小的,真正对其大小进行限制的是服务器的处理程序能力。Tomcat服务器对POST大小限制为2M,这也就能解释为什么第三方给我POST过来3张图片(正常是300|400KB一张图片)的数据时候会有时候能接收到,有时候就只能收到null值。
解决这个问题可以在Tomcat的配置文件里取消POST大小限制,在conf目录下,server.xml文件,修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxPostSize="0"/>
maxPostSize=“0”,即取消POST的大小限制!
最后
以上就是小巧秀发为你收集整理的POST请求大小不限制?的全部内容,希望文章能够帮你解决POST请求大小不限制?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复