springboot项目,对get,post请求数据量有限制吗?
1:对于post请求来说:
1.1:数据量大小:
原则上post是默认无限制的,多大的数据都可以请求,
但是springboot内置的tomcat服务器,对这post请求做了默认限制,
maxPostsize为2m;
Tomcat的配置文件里取消POST大小限制,在conf目录下,server.xml文件,修改:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxPostSize="0"/>
maxPostSize=”0”,即取消POST的大小限制;
Tomcat 7.0及之后的版本:负数才代表不限制(之前0及负数都代表不限制);
springboot内置了tomcat,因此也可以修改这个值:
server:
tomcat:
max-http-post-size: -1
1.2:请求参数个数
在启动类中加入如下代码:
@Bean
public TomcatServletWebServerFactory mbeddedServletContainerFactory() {
TomcatServletWebServerFactory tomcatEmbeddedServletContainerFactory = new TomcatServletWebServerFactory ();
tomcatEmbeddedServletContainerFactory.addConnectorCustomizers(connector ->{
connector.setMaxParameterCount(Integer.MAX_VALUE);
});
return tomcatEmbeddedServletContainerFactory;
}
2:get请求限制
理论上GET请求数据长度没有限制的,真正起到限制的是浏览器对其长度进行了限制。
Google (chrome):URL最大长度限制为8182个字符。
Firefox (Browser):URL的长度限制为65,536个字符。
若是直接通过接口请求,那么url长度需要受到服务器的限制了,
tomcat 在server.xml中 修改maxHttpHeaderSize
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
maxPostSize="0"
maxHttpHeaderSize ="102400"/>
在springboot中也可以修改:
# 设置请求参数过长
server.max-http-header-size=102400
3:文件上传大小限制
可以通过配置方式修改:
# 开启文件上传
spring.servlet.multipart.enabled=true
# 单个文件上传最大值
spring.servlet.multipart.max-file-size=1MB
# 单个请求最大限制
spring.servlet.multipart.max-request-size=1MB
也可以通过代码修改,在启动类中增加:
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//单个文件最大
factory.setMaxFileSize(DataSize.ofMegabytes(5));
/// 设置总上传数据总大小
factory.setMaxRequestSize(DataSize.ofMegabytes(5));
return factory.createMultipartConfig();
}