【前端笔记】网络请求问题:413 request entity too large

文章讨论了在上传图片时遇到的‘请求报文实体过大’问题,原因包括BASE64字符串增大图片大小和HTTP请求的大小限制。推荐使用文件流方式上传文件,而非转换为BASE64通过JSON,同时也提到可以通过调整服务器配置如Nginx的`client_max_body_size`来解决,但这种方法可能带来其他问题。

场景:上传图片给服务端,将图片转为BASE64字符串,通过http请求上送json数据方式实现图片上传,接口报错:“请求报文实体过大”
分析:
1,图片转换为BASE64字符串,大小会增加约30%(基本原理:3字节一组转换为4字节一组)
2,http请求JSON报文大小一般建议不超过200kb,否则加解密过程会很慢
3,服务器、网关等一般都会限制报文大小,比如Nginx默认限制报文大小为1M,超过这个大小就会报上面这个错
解决方法:
1,上传文件更适合采用文件流的方式,几十kb以内的小图片可以转为BASE64字符串通过JSON方式上传。【推荐文件流方式上传文件】
2,找运维修改服务器/网关配置,比如Nginx配置,将报文大小限制提高到比如50M:打开nginx.conf,在http{ }中设置:client_max_body_size 50m
不推荐这种做法,因为可能会引发别的问题,比如Nginx缓存区撑爆、接口超时、浏览器对大报文请求的拦截等问题。

GitHub的bilinote项目INFO: 172.18.0.4:58712 - "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.0" 200 OK INFO: 172.18.0.4:58916 - "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.0" 200 OK nginx 172.18.0.1 - - [25/Sep/2025:13:27:55 +0000] "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.1" 200 120 "http://localhost:3015/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" "-" backend INFO: 172.18.0.4:58924 - "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.0" 200 OK nginx 172.18.0.1 - - [25/Sep/2025:13:27:58 +0000] "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.1" 200 120 "http://localhost:3015/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" "-" backend 2025-09-25 13:27:59 [ERROR] app.services.note - ❌ 总结内容失败,task_id=2c0fd551-f831-4d31-81a9-19d10a4aefce,错误信息:<html> <head><title>413 Request Entity Too Large</title></head> <body> <center><h1>413 Request Entity Too Large</h1></center> <hr><center>openresty</center> </body> </html> 2025-09-25 13:27:59 [ERROR] app.services.note - ❌ 笔记生成流程异常终止,task_id=2c0fd551-f831-4d31-81a9-19d10a4aefce,错误信息:<html> <head><title>413 Request Entity Too Large</title></head> <body> <center><h1>413 Request Entity Too Large</h1></center> <hr><center>openresty</center> </body> </html> nginx 172.18.0.1 - - [25/Sep/2025:13:28:00 +0000] "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.1" 200 223 "http://localhost:3015/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" "-" backend INFO: 172.18.0.4:58936 - "GET /api/task_status/2c0fd551-f831-4d31-81a9-19d10a4aefce HTTP/1.0" 200 OK
09-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值