问题

有人问,http1.1里面已经有了keeplive,那么http1.1本身就是一个长连接,那么还要websocket干肾?

答案

答案当然是要的,主要原因有以下几点:

  1. 开销:http长连接的每次请求仍然需要发送头信息;而websocket仅需要在发起请求时发送头信息。
  2. 真正意义的长连接:http长连接仅仅是为了复用tcp连接,只是一种口头约定,服务端可以不遵守;而websocket是完全意义上的长连接。
  3. 是否平等:http长连接依旧无法摆脱一个request对应一个response的模式,且仅允许客户端往服务端发送request,所以对于实时通信的实现依旧只能是轮询;而websocket双方是对等的,可以相互发送消息,可以实现真正意义的实时通信。来啊,互相伤害吧!

如果您觉得您在我这里学到了新姿势,博主支持转载,姿势本身就是用来相互学习的。同时,本站文章如未注明均为 hisune 原创 请尊重劳动成果 转载请注明 转自: 有了http1.1的keeplive长连接后是否可以不需要websocket - hisune.com