什么是长连接 | 短连接?

某些朋友对长、短连接的概念存在误解,下面我们尝试厘清这2个概念。

1)一般情况下,Client成功连接到Server后,会发送1个或几个请求,收到Server端1个或几个应答;然后!就会非常识趣地马上调用close()关闭连接了。这就叫短连接

2)某些情况下,如果Client有很多数据要传给Server或者从Server获取,就不甘心于只是发送几个请求,在相当长(几秒,几分钟,甚至几个小时)的时间内,都不会调用close()关闭连接(我们称:Client端hold住了连接);而且为了防止Server有空闲连接超时断开的机制,通常Client会每隔几秒发一个心跳包告诉Server自己还活着。这就是长连接

综上2种情况,一个连接是长是短,几乎完全取决于Client的实现者

因此,最正确的理解是:一条连接从它创建到销毁,如果存在的时间长(短),就是长(短)连接

这是它们表面的含义,也是本质的含义。看来,是我们想复杂了!


【错误理解】

1,TCP是长连接,UDP是短连接?

答:长/短连接都是在TCP的前提下来说的,因为UDP没有连接的概念。UDP Client不需要与Server建立连接,它只需要在需要的时候发一个包出去就可以了。所以,更准确地说法应该是:TCP长连接、TCP短连接。

2,TCP是长连接,HTTP是短连接?

答:误以为TCP只能是长连接。我们再说一遍,TCP的连接有长有短。另外,HTTP 1.0确实是短连接,但是,HTTP 1.0加入了keepalive之后,也可以实现长连接。再到后来,出现了websocket,就是默认长连接的协议(注意默认两个字)。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值