get、post、文件上传请求数据量最大限制问题

本文详细介绍了SpringBoot项目中GET和POST请求的数据量、参数个数限制,以及文件上传大小的配置方法。针对POST请求,SpringBoot内置Tomcat默认的maxPostSize为2M,可通过配置取消限制。GET请求的限制主要由浏览器决定,但服务器如Tomcat也可设定maxHttpHeaderSize。此外,还展示了如何调整文件上传的限制,并提供了相应的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值