📅  最后修改于: 2020-10-17 05:53:25             🧑  作者: Mango
Web套接字表示Web通信历史上的重大升级。在其存在之前,Web客户端和服务器之间的所有通信仅依靠HTTP。
Web套接字有助于持久性全双工连接的动态流动。全双工是指从两端以相当快的速度进行通信。
由于其克服了现有协议的所有缺点的效率,因此被称为游戏规则改变者。
Web Socket对开发人员和架构师的重要性-
Web套接字是一个独立的基于TCP的协议,但它设计为支持传统上仅在纯TCP连接之上运行的任何其他协议。
Web套接字是可在其上运行任何其他协议的传输层。 Web Socket API支持定义子协议的功能:可以解释特定协议的协议库。
此类协议的示例包括XMPP,STOMP和AMQP。开发人员不再需要考虑HTTP请求-响应范式。
浏览器端的唯一要求是运行一个JavaScript库,该库可以解释Web Socket握手,建立和维护Web Socket连接。
在服务器端,行业标准是使用在TCP之上运行并利用Web套接字网关的现有协议库。
下图描述了Web套接字的功能-
Web套接字连接是通过HTTP启动的; HTTP服务器通常将Web套接字握手解释为升级请求。
Web套接字既可以是现有HTTP环境的补充插件,又可以提供添加Web功能所需的基础结构。它依赖于更高级的全双工协议,该协议允许数据在客户端和服务器之间双向流动。
Web套接字在Web服务器和客户端之间提供连接,以便双方都可以开始发送数据。
建立Web Socket连接的步骤如下-
客户端通过称为Web套接字握手的过程建立连接。
该过程从客户端向服务器发送常规HTTP请求开始。
请求升级头。在此请求中,它通知服务器该请求用于Web套接字连接。
Web套接字URL使用ws方案。它们还用于安全的Web套接字连接,等效于HTTP。
初始请求标头的简单示例如下-
GET ws://websocket.example.com/ HTTP/1.1
Origin: http://example.com
Connection: Upgrade
Host: websocket.example.com
Upgrade: websocket