2 一致性要求
最后更新于:2022-04-01 02:46:21
# 一致性要求
在本规范中所有图表、示例、和注释是非规范的,以及所有章节明确地标记为非规范的。除此之外,在本规范中的一切是规范的。
该文档中的关键字“必须(MUST)”、“不能(MUST NOT)”、“需要(REQUIRED)”、“应当(SHALL)”、“不得(SHALL NOT)”、“应该(SHOULD)”、“不应该(SHOULD NOT)”、“推荐(RECOMMENDED)”、“可能(MAY)”、和“可选的(OPTIONAL)”由[[RFC2119](http://tools.ietf.org/html/rfc2119)]中的描述解释。
作为算法一部分的祈使句中的要求措辞(例如 “去掉任何前导空格字符” 或 “返回false并终止这些步骤” )解释为引入算法中使用的关键字("MUST", "SHOULD", "MAY"等)的意思。
作为算法或特定的步骤的一致性要求措辞可以(MAY)以任何形式实现,只要最终结果是相等的。(尤其是,定义在本规范中的算法目的是容易遵循而不必是高性能的)
## [](https://github.com/zhangkaitao/websocket-protocol/wiki/2.%E4%B8%80%E8%87%B4%E6%80%A7%E8%A6%81%E6%B1%82#21%E6%9C%AF%E8%AF%AD%E5%92%8C%E5%85%B6%E4%BB%96%E7%BA%A6%E5%AE%9A)2.1.术语和其他约定
*ASCII* 指定义在[[ANSI.X3-4.1986](http://tools.ietf.org/html/rfc6455#ref-ANSI.X3-4.1986)]中的字符编码方案。 此文档中提到的UTF-8值和使用UTF-8标记法格式定义在STD 63 [[RFC3629](http://tools.ietf.org/html/rfc3629)]。
关键术语例如命名算法或定义是表示像*this*。
头字段名字或变量表示像|this|。
变量值表示像/this/。
本文档提及的程序*失败WebSocket连接*。该程序定义在7.1.7节。
*将字符串转换为ASCII小写*意思是替换U+0041到U+005A(也就是,拉丁文,大写字母A到拉丁文大写字母Z)范围的所有字符为U+0061 到 U+007A(也就是,拉丁文小写字母A到拉丁文小写字母Z)范围的对应的字符。 以一个*ASCII 不区分大小写*方式比较两个字符串意思是精确地比较它们,代码点对代码点,除了U+0041到U+005A(也就是,拉丁文,大写字母A到拉丁文大写字母Z)范围中的字符,U+0061到U+007A(也就是,拉丁文小写字母A到拉丁文小写字母Z)范围中的对应的字符被认为也匹配。
用于本文档的术语“URI”定义在[[RFC3986](http://tools.ietf.org/html/rfc3986)]。
当一个实现需要*发送*作为WebSocket一部分的数据,实现可能(MAY)任意地推迟实际的传输,例如,缓冲数据为了发送更少的IP包。 注意,该文档同时使用[[RFC5234](http://tools.ietf.org/html/rfc5234)]和[[RFC2616](http://tools.ietf.org/html/rfc2616)]的ABNF变体在不同章节。