长连接 与 短连接
- 长连接
- 只需要建立一次 Tcp 连接,以后 Http 请求重复使用同一个 Tcp 连接
- 短连接
- 每次 Http 请求都会建立一个 Tcp 连接
长轮询 与 短轮询
长轮询
- 服务器收到请求后如果有数据, 立刻响应请求
- 如果没有数据就会 hold 一段时间, 这段时间内如果有数据立刻响应请求
- 如果时间到了还没有数据, 则响应 http 请求;浏览器受到 Http 响应后会再发送一个同样 Http 请求查询是否有数据
短轮询
服务器收到请求不管是否有数据都直接响应 Http 请求
浏览器受到 Http 响应隔一段时间在发送同样的 Http 请求查询是否有数据
相同点
长轮询 和 短轮询都会 hold 一段时间
不同点
hold 在服务端还是浏览器端
- 长轮询在服务端会 hold 一段时间
- 短轮询在浏览器端 hold 一段时间
应用
- 长轮询
- 电商平台的库存更新
- 朋友圈的im
- 短轮询
- 一般用在实时性要求不高的地方, 比如 新浪微薄的未读条数查询就是浏览器端每隔一段时间查询的.