WebSocket 协议 RFC 文档(全中文翻译)

2019-02-20
阅读 1 分钟
10k
经过半年的捣鼓,终于将 WebSocket 协议(RFC6455)全篇翻译完成。现在将所有章节全部整理到一篇文章中,方便大家阅读。如果大家想看具体的翻译文档,可以去我的GitHub中查看。

【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)

2019-02-20
阅读 1 分钟
4.4k
终端必须保证 WebSocket 连接处于 OPEN 状态(见第 4.1 节和第 4.2.2 节)。如果 WebSocket 连接的任意一端的状态发生了改变,终端必须中止以下步骤。

【译】WebSocket协议第五章——数据帧(Data Framing)

2019-02-20
阅读 9 分钟
4.3k
在WebSocket协议中,数据是通过一系列数据帧来进行传输的。为了避免由于网络中介(例如一些拦截代理)或者一些在第10.3节讨论的安全原因,客户端必须在它发送到服务器的所有帧中添加掩码(Mask)(具体细节见5.3节)。(注意:无论WebSocket协议是否使用了TLS,帧都需要添加掩码)。服务端收到没有添加掩码的数据帧以后...

【译】 WebSocket 协议第十二章——使用其他规范中的WebSocket协议

2019-02-20
阅读 1 分钟
1.9k
WebSocket协议旨在由另一规范使用,以提供动态作者定义内容的通用机制。例如,在定义脚本 API 的规范中定义 WebSocket 协议。

【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)

2019-02-20
阅读 7 分钟
2.7k
概述 本文为 WebSocket 协议的第十一章,本文翻译的主要内容为 WebSocket 的 IANA 相关注意事项。 IANA 注意事项(协议正文) 11.1 注册新 URI 协议 11.1.1 注册 “ws” 协议 ws URI 定义了 WebSocket 服务器和资源名称。 URI 协议名称 ws 状态 永久 URI 协议语法 使用 ABNF (RFC5234)语法和来自 URI 规范 RFC3986 的 AB...

【译】 WebSocket 协议第十章——安全性考虑(Security Considerations)

2019-02-20
阅读 3 分钟
3.8k
WebSocket 协议防止在受信任的应用例如 Web 浏览器中执行的恶意 JavaScript 代码,例如通过检查Origin头字段(见下面)。见第 1.6 节去了解更多详情。这种假设在更有能力的客户端的情况下不成立。

【译】 WebSocket 协议第九章——扩展(Extension)

2019-02-20
阅读 2 分钟
3.4k
WebSocket 可以请求该规范中提到的扩展,WebSocket 服务端可以接受其中一些或者所有的客户端请求的扩展。服务端禁止响应客户端没有请求过的扩展。如果扩展参数需要在客户端和服务端之间进行协商,这些参数必须根据参数所应用的扩展的规范来选择。

【译】 WebSocket 协议第八章——错误处理(Error Handling)

2019-02-19
阅读 1 分钟
2.2k
当终端按照 UTF-8 的格式来解析一个字节流,但是发现这个字节流不是 UTF-8 编码,或者说不是一个有效的 UTF-8 字节流时,终端必须让 WebSocket 连接关闭。这个规则在建立连接开始握手和后续的数据交换时都生效。

【译】 WebSocket 协议第七章——关闭连接(Closing the Connection)

2019-02-19
阅读 4 分钟
9.3k
要关闭 WebSocket 连接,终端需要关闭底层的 TCP 连接。终端需要使用一个方法来干净的关闭TCP连接,还有 TLS 会话,如果可能的话,抛弃后面可能受到的任意字符。终端可能会在需要的时候,通过任何方式来关闭连接,例如在收到攻击时。

【译】 WebSocket 协议第十章——安全性考虑(Security Considerations)

2019-02-19
阅读 3 分钟
1.7k
WebSocket 协议防止在受信任的应用例如 Web 浏览器中执行的恶意 JavaScript 代码,例如通过检查Origin头字段(见下面)。见第 1.6 节去了解更多详情。这种假设在更有能力的客户端的情况下不成立。

【译】WebSocket协议第五章——数据帧(Data Framing)

2019-01-07
阅读 9 分钟
3.9k
概述 本文为WebSocket协议的第五章,本文翻译的主要内容为WebSocket传输的数据相关内容。 有兴趣了解该文档之前几张内容的同学可以见: 【译】WebSocket协议第一章——介绍(Introduction) 【译】WebSocket协议第二章——一致性要求(Conformance Requirements) 【译】WebSocket协议第三章——WebSocket网址(WebSocket URIs) 【...

【译】WebSocket协议第四章——连接握手(Opening Handshake)

2018-07-24
阅读 10 分钟
9.3k
本文为WebSocket协议的第四章,本文翻译的主要内容为WebSocket建立连接开始握手的内容,主要包含了客户端和服务端握手的内容,以及双方如何处理相关字段和逻辑。

【译】WebSocket协议第三章——WebSocket网址(WebSocket URIs)

2018-07-24
阅读 1 分钟
4k
概述 本文为WebSocket协议的第三章,本文翻译的主要内容为WebSocket连接的相关URI地址介绍。 WebSocket URIs(第三章协议正文) 这个规范使用在RFC5234中的ABNF语法以及URI规范中的RFC3986的术语和ABNF产品定义了两套方案。 {代码...} 端口字段是可选的,默认的"ws"端口是80,而默认的"wss"端口是443。 命中不论大小写的...

【译】WebSocket协议第二章——一致性要求(Conformance Requirements)

2018-07-24
阅读 1 分钟
3.1k
在这篇文档中的关键词如“必须(MUST)”、“必须不(MUST NOT)”、“需要(RWQUIRE)”、“应该(SHALL)”、“不应该(SHALL NOT)”、“应该(SHOULD)”、“不应该(SHOULD NOT)”、“推荐(RECOMMENDED)”、“也许(MAY)”和“可选(OPTIONAL)”可以按照[RFC2119]([链接]。

【译】WebSocket协议第一章——介绍(Introduction)

2018-07-24
阅读 5 分钟
7.4k
本文为WebSocket协议的第一章,本文翻译的主要内容为针对整个WebSocket进行一个简单而又全面的介绍。通过这篇文章我们能够对WebSocket有一个整体的大致了解。

【译】WebSocket 协议——摘要

2018-07-24
阅读 1 分钟
3.7k
概述 本系列内容为RFC6455 WebSocket协议的中文翻译版。进行相关文档规范的翻译初衷是为了更加深刻的了解WebSocket以及相关内容。 本文主要为WebSocket协议 摘要 文章具体内容较少,后续会陆续更新相关的章节,有兴趣的同学可以持续关注一下。 翻译版包含了部分个人的理解,大部分内容为直译,其他小部分内容可能为意译...

WebSocket系列之如何建立和维护可靠的连接

2018-04-05
阅读 2 分钟
6.2k
通过前四篇博客,相信读者对于WebSocket的使用和数据(不论是ArrayBuffer还是String)传输都有了一个深刻的了解。现在我们来介绍下,我在使用WebSocket时,连接相关模块遇到的一些共性问题,以及我们如何解决这些问题。

WebSocket系列之二进制数据设计与传输

2018-03-31
阅读 3 分钟
20.6k
通过前三篇博客,我们能够了解在通过WebSocket发送数据之前,我们需要传递的数据是如何变成ArrayBuffer二进制数据的;在我们收到二进制数据之后,我们又如何将其变成了JavaScript中的常见数据类型。本文作为WebSocket系列的第四篇内容,将会用一个简单的IM聊天应用把整个WebSocket传输二进制数据类型的内容连接起来,让...

WebSocket系列之字符串如何与二进制数据间进行互相转换

2018-03-30
阅读 4 分钟
13k
上一篇博客我们说到了如何进行数字类型(如Short、Int、Long类型)如何在JavaScript中进行二进制转换,如果感兴趣的可以可以阅读本系列第二篇博客——WebSocket系列之JavaScript中数字数据如何转换为二进制数据。这次,我们来说下string类型的数据如何进行处理。本文是WebSocket系列的第三篇,主要介绍string数据与二进制...

WebSocket系列之JavaScript中数字数据如何转换为二进制数据

2018-03-28
阅读 4 分钟
8.7k
本文主要通过对JavaScript中数字数据与二进制数据之间的转换,让读者能够了解在JavaScript中如何对数字类型(包括但不限于Number类型)进行处理。

WebSocket系列之基础知识入门篇

2018-03-27
阅读 4 分钟
7.4k
本文是WebSocket系列的第一篇,主要介绍WebSocket相关的基础协议知识和API。由于WebSocket的相关介绍在MDN中分布较乱,初学者不太容易入门,因此通过本文将相关基础知识和使用方法进行一个归纳和总结。