【websocket】01. websocket基础介绍

274 阅读1分钟

【websocket】01. websocket基础介绍

1. 什么是websocket?

维基百科:WebSocket是一种与HTTP不同的协议。两者都位于OSI模型应用层,并且都依赖于传输层的TCP协议。

其实websocket是一种『协议』,WebSocket协议在建立连接时会使用到HTTP协议,但不是说websocket协议就是基于HTTP协议实现。

2. 为什么用websocket?什么场景下使用?

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

2.1 HTTP协议与Websocket协议通信方式

  • websocket是双向通信,只有在初始建立链接的情况下是使用的HTTP的『请求-响应』模式交互,建立连接后则是双向通信。
  • HTTP全部都是『请求-响应』的单向通信。
  • websocket的双向通信比HTTP的单向通信效率更高。

websocket&http-diff

2.2 为什么用websocket?

  • HTTP不支持长连接。新的HTTP协议可能支持keep alive但是只是保持连接,也就是说,在一个HTTP1.1连接中,可以发送多个Request,接收多个Response。但是每个 Request = Response , 在HTTP中是不变的且response是被动的,无法主动发送response。
  • 支持双向通信,有更强的通信能力。服务端可以主动进行推送,客户端也可以实时与服务端进行通信。
  • 更少的资源开销,当websocket建立连接后,通信协议控制的数据包Header较小,省去很多开销。

2.3 使用场景

  • 网页游戏开发,端到端实时通信
  • 网页聊天
  • 股票行情等类似实时性推送