【网络】websocket与https的区别

348 阅读2分钟

Websocket与Https的区别

Websocket

WebSocket是HTML5规范提出的协议;除了IE,其他都基本支持。基于TCP协议的;和HTTP协议是并存的两种协议,支持页面使用Web Socket协议与远程主机进行全双工的通信

比推送实时数据到客户端甚至通过维护两个HTTP连接来模拟全双工连接的旧的轮询或长轮询(Comet)来说,这就极大的减少了不必要的网络流量与延迟

![](D:\qianduanzongjie\2021面试准备\THE Distinction Of Https和Websocket.gif)

Socket

socket是传输层接口,websocket是应用层协议

Http

  • http是超文本传输协议,信息是明文传输,

  • HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理

Http与Webscoket关系

![](D:\qianduanzongjie\2021面试准备\The Relation of Http and Websocket.png)

相同点

  • 基于TCP协议,都是可靠传输协议

  • 应用层协议

不同点

  • websocket是全双工通信协议,全双工是发送数据时也能接受数据
    • http1.1以下版本,http连接为短连接,tcp连接发送信息等待接受信息后断开
    • http1.1 是半双工,建立长连接,出现多路复用,可先后发送多个http请求,不用等待回复,但是回复按顺序一个一个回复
    • http2.0是全双工,一个消息发送后不用等待接受,第二个消息可以直接发送
  • WS使用HTTP来建立连接,但是定义了一系列新的header域,这些域在HTTP中并不会使用
  • WS的连接不能通过中间人来转发,它必须是一个直接连接
  • WS连接建立之后,数据的传输使用帧来传递

TCP协议

看网络-http详解

三次握手