# 一致性要求
在本規范中所有圖表、示例、和注釋是非規范的,以及所有章節明確地標記為非規范的。除此之外,在本規范中的一切是規范的。
該文檔中的關鍵字“必須(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變體在不同章節。