参考链接
连接其实只是双方都维护了一个状态,通过每一次通信来维护状态的变更
短连接
在 HTTP 1.0 中
- 客户端的每次请求都要求 建立一次单独的连接
- 在处理完本次请求后,就 自动释放连接
- 下次要取数据,需要 再次建立连接
长连接
在 HTTP 1.1 中则 可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待
- 客户端和服务端建立连接后不进行断开
- 客户端再次访问这个服务器的内容时,继续使用这一条连接通道
实现
- 在请求响应头加入:
Connection:keep-alive
长连接对于服务端来说会耗费一定资源
适用场景
短连接
- 适用于网页浏览等 并发量大且用户不需要频繁的交互式操作 的场景
长连接
- 适用于客户端和服务端 通信频繁 的场景,例如聊天室,实时游戏等
- 点对点通讯等 连接数不多 的场景
Http长连接 和 TCP长连接的区别
TCP 的长连接需要自己去 维护一套心跳策略
Http 只需要 在请求头加入keep-alive:true
即可实现长连接