nginx状态码499,client closed request,前端页面错误提示timeout

499错误码,client closed request,通常表示客户端关闭了连接,在服务器完全接收请求之前,客户端已经中断了连接。

省流:前端发起请求,前后端建立了连接后,由于传输时间太长,超过了前端设置的超时时间后,前端报错timeout并取消请求,后端提示499client closed request。

什么情况下遇到的499?

实现了一个前端上传文件,后端保存到数据库的功能。前端使用el-upload选中文件后,触发change事件,通过change事件来调用后端保存二进制文件的接口。

某次当选取的文件较大时,在一定时间后,前端报错timeout,ngnix提示499错误。

为什么会遇到499?

超时时间设置得太短,以至于在服务器开始处理请求之前,客户端就因为超时而关闭了连接。在axios配置中修改timeout时间可以解决这个问题。

当文件较大时,上传所需的时间自然会更长。如果设置的超时时间(timeout)较短,而文件上传所需时间超过了这个阈值,那么就会触发超时。

建立连接后,文件传输的时长超过了timeout,由于文件还没完全传输,后端不会给出返回信息,此时前端取消请求,因此会报client closed request。

为什么浏览器控的network中没有后端返回的接口响应?

一开始我也很疑惑,为什么network中并没有接口的响应,后端那边也没有提示该接口被触发。既然都没有响应,那又何来的client closed request?后端甚至“不知道”有request。

其实不然。

上传文件时,客户端(即你的浏览器或前端应用)会尝试与服务器建立TCP连接。这是通过TCP握手(three-way handshake)完成的,确保双方都能发送和接收数据。

el-upload组件在上传文件时,实际上是封装了底层的HTTP请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值