413 Payload Too Large
一句话:上传的文件或提交的数据超过了服务器/代理设置的大小限制,被直接拒绝。
它是什么
413错误表示你发送的请求内容(通常是上传的文件)超过了服务器允许的最大大小。这个限制可能设置在应用代码里,也可能设置在反向代理(如Nginx)层面,需要两边都检查。
适合干什么
- 文件上传功能报413错误时排查
- 提交大量表单数据被拒绝时排查
不适合干什么
- 文件类型不对导致的上传失败(那是校验逻辑拒绝,不是大小限制,报错类型不同)
普通人怎么用
先确认上传的文件实际大小,对照应用和服务器的限制配置,看是哪一层设置的限制导致了拒绝;简单粗暴的办法是调大限制,但更好的做法是先问自己这么大的文件是否真的需要直接上传。
进阶用户怎么用
如果使用了Nginx等反向代理,需要同时调整代理层(client_max_body_size)和应用层(框架自带的请求体大小限制)的配置,只改一边可能不生效;大文件上传更推荐用分片上传而不是一次性调大限制。
常见误区
- 只调整了应用代码里的大小限制,却忽略了前面还有一层反向代理(Nginx)也有自己的限制,改了一边发现还是不生效
- 遇到就直接把限制调到很大,没有考虑这样是否会给服务器带来性能或安全风险(恶意超大文件攻击)
和相似工具的区别
- 和普通的文件上传功能设计的关系:413通常是因为没有提前规划好合理的文件大小限制和分片上传策略,直接暴露了默认限制值
入门步骤
- 确认上传文件的实际大小
- 检查应用层和反向代理层的大小限制配置
- 根据实际需求合理调整,或考虑改用分片上传