连接 与 轮询

长连接 与 短连接

  • 长连接
    • 只需要建立一次 Tcp 连接,以后 Http 请求重复使用同一个 Tcp 连接
  • 短连接
    • 每次 Http 请求都会建立一个 Tcp 连接

长轮询 与 短轮询

  • 长轮询

    1. 服务器收到请求后如果有数据, 立刻响应请求
    2. 如果没有数据就会 hold 一段时间, 这段时间内如果有数据立刻响应请求
    3. 如果时间到了还没有数据, 则响应 http 请求;浏览器受到 Http 响应后会再发送一个同样 Http 请求查询是否有数据
  • 短轮询

    1. 服务器收到请求不管是否有数据都直接响应 Http 请求

    2. 浏览器受到 Http 响应隔一段时间在发送同样的 Http 请求查询是否有数据

相同点

长轮询 和 短轮询都会 hold 一段时间

不同点

hold 在服务端还是浏览器端

  • 长轮询在服务端会 hold 一段时间
  • 短轮询在浏览器端 hold 一段时间

应用

  • 长轮询
    • 电商平台的库存更新
    • 朋友圈的im
  • 短轮询
    • 一般用在实时性要求不高的地方, 比如 新浪微薄的未读条数查询就是浏览器端每隔一段时间查询的.