分享

springboot关于post请求参数请求体(requestbody)大小限制的说明

 wwq图书世界 2023-03-01 发布于山东

当 post 请求里面的数据量太大了的时候,API虽然能够接收到请求,但是header 和 body里面的数据都为null。

SpringBoot 内置 Tomcat 默认的 post 请求大小是 2M。

官方参数配置解释:

https://docs./spring-boot/docs/current/reference/html/application-properties.html#application-properties.server

解决方案:server:   tomcat:     max-http-form-post-size: -1

///////////////////////////////////////////////////////////////////////////////////////////////

最近做一个上传图片的项目,前端使用jquery 的post提交,然后把上传的图片的base64码 传到后台,发现几KB或者几十KB的图片,都可以传到后台,但是在上传几M

的图片在后台接收的时候,发现传过来的参数都是空。而且页面和控制台都没有报错,想想以前的学习知识,理论上post传参是没有限制的,为什么 会出现这种问题呢?

通过查阅资料总结如下:

一、首先我们应该知道 所谓限制post参数的大小,到底是由什么限制的,http协议规范并没有对URL的长度进行限制。就算有限制,它也只是限制你URI的大小,对你后面所带的参数的长度并没有什么限制。

二、另外就是所谓长度限制是有浏览器和web应用服务器决定的,不同的浏览器和服务器设定的大小都不一样。主要还是看浏览器和服务器处理程序的能力。

综上两点,我就知道我的问题出在哪了,由于我本地服务器用的是tomcat,tomcat默认限制post大的大小是2M,

设置post请求的大小(以tomcat为例),在conf/server.xml 文件中,在 标签中设置  maxPostSize="0",

maxPostSize="0",就代表post请求的参数无限制。

参考链接:

关于 HTTP GET/POST 请求参数长度最大值的一个理解误区

java url 请求 最大长度限制_Http请求 url 请求头 请求体 大小长度限制-蒲公英云 ()

关于java:在Spring Boot中增加HTTP Post maxPostSize | 码农家园 ()

//////////////////////////////////////////////////////////////////////////////////////////////

使用springboot 架了一个api service,但是在调用这个api的时候,发现当post请求里面的数据量太大了的时候,API虽然能够接收到请求,但是header 和 body里面的数据都为null,查了一下,网上好多都是在application.properties设置:

spring.http.multipart.max-file-size=-1

spring.http.multipart.max-request-size=-1

试了一下不行。最后试了一下:

server.tomcat.max-http-post-size=-1

这个可以。Tomcat默认的post请求大小好像是2M还是多少来着,忘了。

/////////////////////////////////////////////////////////////////////////////////////////////

因为我这里上传是传图片,图片以base64形式携带在请求参数中,form表单的形式提交,故怀疑可能是请求参数大小被限制了,于是添加以下配置

1

2

3

4

5

#注意这是server!!

server:

max-http-header-size: 4048576

tomcat:

max-http-post-size: 1000MB #请求参数长度 

spring:

servlet:

multipart:

enabled: true

max-file-size: 1000MB #单个文件的最大上限

max-request-size: 1000MB #单个请求的文件总大小上限

//////////////////////////////////////////////////////////////////////////////////////////////

server:

max-http-header-size: 4048576

tomcat:

max-http-post-size: 1000MB #请求参数长度

spring:

servlet:

multipart:

enabled: true

max-file-size: 1000MB #单个文件的最大上限

max-request-size: 1000MB #单个请求的文件总大小上限

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多