HTTP 413 状态码表示 “Payload Too Large”(请求实体过大)。这是客户端请求的问题,服务器拒绝处理因为请求体超过了服务器允许的大小限制。
常见原因和解决方案:
1. 客户端请求体过大
- 文件上传超过服务器限制
- POST 数据量过大
2. 解决方案:
Nginx 配置调整:
# 在 http、server 或 location 块中调整
client_max_body_size 100M; # 调整为合适的大小
Apache 配置调整:
# 在 httpd.conf 或虚拟主机配置中
LimitRequestBody 104857600 # 100MB,单位为字节
Node.js (Express)
// 增加 body-parser 限制
app.use(express.json({ limit: '100mb' }));
app.use(express.urlencoded({ limit: '100mb', extended: true }));
PHP
// php.ini 中调整
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
Spring Boot (Java)
# application.yml
spring:
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
3. 其他可能的原因:
- CDN/反向代理限制:检查 CDN(Cloudflare等)或负载均衡器的设置
- Web应用防火墙(WAF):WAF可能有自己的大小限制规则
- 浏览器限制:某些浏览器对请求大小有内置限制
4. 临时测试方法:
# 使用 curl测试大文件上传
curl -X POST -H "Content-Type: application/json" \
--data @large_file.json \
http://your-domain.com/upload
5. 最佳实践:
- 分片上传:对大文件使用分片上传机制
- 进度显示:为用户提供上传进度反馈
- 格式压缩:在上传前压缩数据
请根据您的具体技术栈选择相应的解决方案。通常需要同时调整服务器配置和应用程序配置。
内容由零声教学AI助手提供,问题来源于学员提问




