websocket和http的区别

1.WebSocket 是什么?

  • 定义了一个全双工的通信通道。
  • 经常需要使用server端推送实时数据到客户端甚至通过维护两个HTTP连接来模拟全双工连接的旧的轮询或长轮询(Comet)来说,这就极大的减少了不必要的网络流量与延迟。
  • 一个WebSocket连接是在客户端与服务器之间HTTP协议的初始握手阶段将其升级到Web Socket协议来建立的,其底层仍是TCP/IP连接。(upgrade升级)
    image.png

2.WebSocket与Socket的关系

  • Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,提供一套调用TCP/IP协议的API
  • 当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。
    WebSocket就像HTTP一样,则是一个典型的应用层协议
  • Socket是传输控制层接口,WebSocket是应用层协议。
  • WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。

3.WebSocket与HTTP的关系

  • WebSocket双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP单向的。

  • WebSocket连接的过程是

  1. 首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等;

  2. 然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据

  3. 最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。

你可能感兴趣的:(websocket和http的区别)