什么是websocket?

2,413 阅读1分钟

websocket是一个网络协议。

传统的基于浏览器的应用,比如网页游戏,经常需要和服务端进行通信,免不了要开多个http请求,来主动向服务器查询最新的信息,但是对于客户端的更新操作却又得发起新的请求,这样带来一系列的问题:

  1. 服务端对于同一个客户端得提供一些不同的TCP连接,一个用于发送信息给客户端,一个用于处理每个送给服务端的信息
  2. 通信协议本身是会造成通信的高开销,比如每个客户端到服务端的Http请求都会携带头部信息
  3. 对于客户端要测试来讲,客户端的同学必须要维持传出连接和传入连接的映射关系

websocket为了解决上述问题,从而出现,它主要基于tcp连接的方式来实现双向通信,将原始的TCP尽可能的暴漏给浏览器端。

websocket和TCP、HTTP协议有什么关系?

websocket是以TCP为基础的独立于TCP的一个协议。和HTTP的关系仅仅是websocket的握手阶段会被HTTP服务器当做一次升级请求

和socket是两个完全不同的东西

websocket默认使用80端口作为一般请求,使用443作为传输加密层的端口

出自 tools.ietf.org/html/rfc645…