美文网首页
WebSocket 简介

WebSocket 简介

作者: 苍天霸气诀 | 来源:发表于2019-04-12 14:59 被阅读0次

WebSocket 是什么?

WebSocket是HTML5规范提出的一种协议;目前除了完犊子的IE浏览器,其他浏览器都基本支持。他是一种协议,万变不离其宗,也是基于TCP协议的;和HTTP协议是并存的两种协议。

WebSocket是HTML5中的协议。HTML5 Web Sockets规范定义了Web Sockets API,支持页面使用Web Socket协议与远程主机进行全双工的通信。它引入了WebSocket接口并且定义了一个全双工的通信通道,通过一个单一的套接字在Web上进行操作。HTML5 Web Sockets以最小的开销高效地提供了Web连接。相较于经常需要使用推送实时数据到客户端甚至通过维护两个HTTP连接来模拟全双工连接的旧的轮询或长轮询(Comet)来说,这就极大的减少了不必要的网络流量与延迟。

要使用HTML5 Web Sockets从一个Web客户端连接到一个远程端点,你要创建一个新的WebSocket实例并为之提供一个URL来表示你想要连接到的远程端点。该规范定义了ws://以及wss://模式来分别表示WebSocket和安全WebSocket连接,这就跟http:// 以及https:// 的区别是差不多的。一个WebSocket连接是在客户端与服务器之间HTTP协议的初始握手阶段将其升级到Web Socket协议来建立的,其底层仍是TCP/IP连接。

WebSocket 简介

WebSocket协议是一种双向通信协议,它建立在TCP之上,同http一样通过TCP来传输数据,但是它和http最大的不同有两点:1.WebSocket是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/UA都能主动的向对方发送或接收数据,就像Socket一样,不同的是WebSocket是一种建立在Web基础上的一种简单模拟Socket的协议;2.WebSocket需要通过握手连接,类似于TCP它也需要客户端和服务器端进行握手连接,连接成功后才能相互通信。

下面是一个简单的建立握手的时序图:

image.png

WebSocket 和socket、HTTP的区别和联系

二、WebSocket与Socket的关系

Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。

“Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,提供一套调用TCP/IP协议的API。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。”

当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。

WebSocket就像HTTP一样,则是一个典型的应用层协议。

image.png

总结:

Socket是传输控制层接口,WebSocket是应用层协议

三、WebSocket与HTTP的关系

关系图:

image.png

相同点

1. 都是一样基于TCP的,都是可靠性传输协议。
2. 都是应用层协议。

不同点

  1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。
  2. WebSocket是需要浏览器和服务器握手进行建立连接的。而http是浏览器发起向服务器的连接,服务器预先并不知道这个连接。

联系

WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

总结:

在WebSocket中,只需要服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道进行数据的传送。

WebSocket连接的过程是:

  1. 首先,客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等;
  2. 然后,服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据;
  3. 最后,客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信。

引用:https://blog.csdn.net/changhenshui1990/article/details/80185135

相关文章

  • 好程序员web前端培训分享WebSocket协议

    好程序员web前端培训分享WebSocket协议,WebSocket协议简介 一.WebSocket协议简介 1....

  • 遇到Websocket就不会测了?别慌,学会这个Jmeter插件

    01websocket简介及优势 1.websocket简介: websocket 是一种双向通信协议,在建立连接...

  • 基于Node.js的WebSocket通信

    Websocket简介[维基百科] WebSocket is a computer communications ...

  • Websocket

    参考资料 Websocket简介 Websocket API Websocket 阮一峰 nodejs建立webs...

  • websocket使用

    websocket简介 websocket:github参考 实例:vue+websocket在线聊天室 浏览器和...

  • websocket学习

    WebSocket简介 谈到Web实时推送,就不得不说WebSocket。在WebSocket出现之前,很多网站为...

  • websocket简介

    一、websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或...

  • WebSocket简介

    作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、We...

  • WebSocket 简介

    webSocket建立连接的过程:浏览器先发送http报文,借用了http协议来完成一部分握手,这个http报文中...

  • WebSocket 简介

    WebSocket 是什么? WebSocket是HTML5规范提出的一种协议;目前除了完犊子的IE浏览器,其他浏...

网友评论

      本文标题:WebSocket 简介

      本文链接:https://www.haomeiwen.com/subject/htucwqtx.html