【网络&通信协议系列(五)】长、短链接与WebSocket协议

大部分开发者接触 长连接 概念可能都是通过:

HTTP 1.1 版本默认采用长连接,通过头部的Connection:Keep-Alive实现。

通过TCP/IP协议栈的学习,我们知道HTTP其实是基于TCP的应用层协议。实际上HTTP是无状态协议,所谓无状态,就是HTTP一个请求对应一次响应,如果不做一点特殊的操作,服务器不可能知道客户端上一次请求的状态。HTTP 1.1版本使用的Keep-Alive是服务器使用超时策略维护相应的TCP连接,当链路空闲,服务器很快就会断开连接。

概念

短连接:每一次客户端请求-服务端响应的过程都需要建立一个新的连接,也就是说每一次连接都需要经过完整的TCP三次握手、四次挥手。
长连接:一次连接建立,多次使用;也就是说多次连接只需要一轮最开始的三次握手、到连接结束/失效的四次挥手操作。
长轮询:客户端发送请求,服务器不立马响应,而是保持当前连接,直到有数据时才返回。

实际上的长连接、短连接都是TCP层面的概念

使用场景

长连接多用于操作频繁,连接数不太多的情况,如:点对点通讯、数据库连接等,优势是不用每次数据传输都进行繁琐的连接建立过程,坏处是每一个连接的维持都需要耗费服务器的资源:句柄、服务端线程等,如果连接数过多,可能造成服务器资源耗费严重,所以服务器通常会指定允许客户端最大连接数防止这种现象发生。<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值