返回介绍

2.7.4. WebSocket

发布于 2024-02-07 20:47:54 字数 992 浏览 0 评论 0 收藏 0

2.7.4. WebSocket

2.7.4.1. 简介

WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。WebSocket协议在2011年由IETF标准化为RFC 6455,后由RFC 7936补充规范。

2.7.4.2. 交互

2.7.4.2.1. 握手

握手阶段和 HTTP 协议较为类似,RFC 文档中给出的握手示例如下:

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

其中 Upgrade 的值必须为 websocket ,Connection 的值必须为 Upgrade ,合起来表示客户端喜欢连接升级到 Websocket 协议。

Sec-WebSocket-Key 是一个随机值,Sec-WebSocket-Accept 是 Sec-WebSocket-Key 拼接特定字符串 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 计算SHA1摘要后的 Base64 编码的值。例子中 s3pPLMBiTxaQ9kYGzzhZRbK+xOo= 就是 dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11 对应的SHA1摘要。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文