思考遇到HTTP的链接报错 - ECONNRESET

导语:

访问内部网站,发现时间一长会报ECONNRESET错误,一开始以为是后端的正常报错,就去搜了一下,但是没查到主要原因,

后面查阅资料研究了一下,实际上可能是会话时间过长,服务器关闭客户端的tcp链接的原因。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0NjYci9P-1646903716036)(/var/folders/vv/fp46b6q51494s_grs495qgh80000gn/T/com.tencent.WeWorkMac/wecom-temp-48fe059c98b431be8dec56a59efc0d65.png)]

问题情况

偶然和同事一起打开自己内部的测试平台,然后都发现了报错ECONNRESET,然后任何的接口都访问不出来,均以上这个报错。

我本地没有切换switchhost,也没有进行其他操作,原则上tcp的会话链接会一直存在,也不会掉线。(因为我重新又刷了n次页面)

查阅了资料,网上有个说法:

在长连接的前提下,服务端先于客户端关闭了 TCP,而客户端此时还未同步状态,所以存在一个错误的暂态(客户端认为 TCP 连接依然在,但实际已经销毁了)

因为会话也会存在使用时间,如果长时间不操作页面,服务器会提前断开与客户端的tcp链接,也就关闭了会话。

这是一个说法

网上资料情况总结

所以类似以下这些情况均有可能会发生报错ECONNRESET

客户端与服务端成功建立了长连接

  • 连接静默一段时间(无 HTTP 请求)
  • 服务端因为在一段时间内没有收到任何数据,主动关闭了 TCP 连接
  • 客户端在收到 TCP 关闭的信息前,发送了一个新的 HTTP 请求
  • 服务端收到请求后拒绝,客户端报错 ECONNRESET

在看我们今天情况,很有可能是第四点:服务端收到请求后拒绝,客户端报错 ECONNRESET。

服务端拒绝,在正常运行或者非偶然情况下有可能会拦截,那就得定位下服务器的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值