tomcat---Request header is too large和Request Entity Too Large的正确解决方法

本文详细介绍了在遇到Tomcat服务器返回'Request Entity Too Large'或'Request header is too large'错误时的正确解决方法。通过调整maxPostSize和maxHttpHeaderSize两个配置参数,可以有效解决文件上传和请求头过大的问题。需要注意,maxPostSize设置为负数表示无限制,而maxHttpHeaderSize不应设置为负数以防止内存溢出。
摘要由CSDN通过智能技术生成

在平常开发中,tomcat应该是程序员接触最多的服务器。平常做文件上传容易碰到Request Entity Too Large异常,偶尔会碰到Request header is too large异常,大致看了下网上的解决方案,天下文章一大抄,还都抄错。这里给出正确解决方法。


Request Entity Too Large

从字面意思可知,是请求体过大,多见于文件上传时触发,设置connectormaxPostSize为大点的值即可,单位byte,默认值:2097152 (2 megabytes)。若想将其设为无限制,则将其设置为负数即可。网上解决方案大多说设置为0,这是错的,设置为0会导致tomcat截断post的参数,导致后台接收到的参数全都是null。官方文档原文如下:

maxPostSize :
The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes).

链接如下:

IIS 10.0 - 413.1 - Request Entity Too Large错误是指在使用IIS 10.0作为Web服务器时,当请求的实体(通常是请求的主体部分)超过服务器所允许的大小限制时,会出现该错误。这个错误通常发生在上传文件或提交大量数据的情况下。 解决这个问题的方法有以下几种: 1. 修改IIS配置文件:可以通过修改IIS的配置文件来增加请求实体的大小限制。打开IIS管理器,找到对应的网站或应用程序池,右键点击属性,选择"配置编辑器"。在"系统.webServer"节点下找到"security/requestFiltering/requestLimits"节点,将"maxAllowedContentLength"属性的值增加到所需的大小。保存更改后,重新启动IIS服务。 2. 修改Web.config文件:可以在网站的根目录下的Web.config文件中添加或修改以下配置来增加请求实体的大小限制: ```xml <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="xxx" /> </requestFiltering> </security> </system.webServer> ``` 其中,"xxx"表示所需的大小限制,以字节为单位。保存更改后,重新启动IIS服务。 3. 使用上传组件:如果您的应用程序需要处理大文件上传,可以考虑使用第三方的上传组件,如ASP.NET的FileUpload控件或者其他开源的上传组件。这些组件通常提供了更灵活的配置选项,可以轻松处理大文件上传。 4. 调整客户端请求:如果您无法修改服务器的配置或使用上传组件,您还可以尝试调整客户端请求的大小。例如,可以通过减小上传文件的大小或者分块上传的方式来避免超过服务器的限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值