news 2026/5/13 11:08:11

文件分片上传接口(Easyswoole)被nginx拦截,并返回状态码400和408的抓包排查过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
文件分片上传接口(Easyswoole)被nginx拦截,并返回状态码400和408的抓包排查过程

场景:前端上传的视频文件过大,做了一个分片上传的接口, 调试接口的时候,后端EasySwoole程序接收不到请求,前端发现接口返回状态码408

遇到的问题:一个文件分三片上传,第一次请求接口正常,后面第二次请求就被nginx拦截,返回状态码400,紧接着请求又返回408,前端是App不好调试,只能从nginx和网络抓包分析问题

问题排查过程:

php程序接口日志无输出,直接打开Nginxaccess .log,看日志:

第一次请求成功,状态码是200

第二次就请求失败了,状态码是400

然后前端进行两次重传也是失败了,返回状态码还变成了408

因为前端是App调用的接口,看不到详细请求,只能在服务器抓包,Wireshark分析前端的请求发现:

请求成功的是一个完整的http请求,是流0,红色的标识客户端(App)发送的入参,每一个参数末尾有分隔符boundary

追踪这个流到流1,就是失败的请求,因为文件参数结尾没有boundary,服务器读取不了入参, 直接被nginx拦截了返回400, 也就没有响应数据。

前端进行重传的流2和流3nginx还是接收不到完整的参数就返回了408

Nginx文档描述:

在设置的超时时间参数client_header_timeoutclient_body_timeout的时间内,服务端没有读取到正常的请求头和请求体,就会返回408,但是这个问题说明了服务端在接收两次请求都没有读取到对应的请求体,nginx也会返回408,跟时间无关,修改时间参数解决不了问

最后由前端手动加上了入参的boundary,就能正常上传:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 11:06:15

[HFSS] 从零到一:Floquet Port与主从边界在波导阵列建模中的实战解析

1. 初识Floquet Port与主从边界 第一次接触HFSS的周期性结构仿真时,我被Floquet Port和主从边界这两个概念搞得一头雾水。直到实际建模了一个波导阵列天线,才真正理解它们的妙用。简单来说,Floquet Port是专门为周期性结构设计的特殊端口&…

作者头像 李华
网站建设 2026/5/13 11:03:25

StreamCap:跨平台直播录制终极指南 - 如何简单快速录制40+主流平台

StreamCap:跨平台直播录制终极指南 - 如何简单快速录制40主流平台 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/s…

作者头像 李华
网站建设 2026/5/13 10:59:37

如何快速掌握LeagueAkari:从新手到高手的完整实战指南

如何快速掌握LeagueAkari:从新手到高手的完整实战指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一款基于LCU A…

作者头像 李华
网站建设 2026/5/13 10:57:52

HS2-HF_Patch:为《Honey Select 2》打造的终极增强补丁完整指南

HS2-HF_Patch:为《Honey Select 2》打造的终极增强补丁完整指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是一个文章写手,你负责…

作者头像 李华