【譯】WebSocket協議第二章——一致性要求(Conformance Requirements)

黃Java發表於2018-06-11

概述

本文為WebSocket協議的第二章,本文翻譯的主要內容為WebSocket協議中相關術語的介紹。

2 一致性要求(第二章協議正文)

在這篇文件中,所有的圖、示例和筆記都是非規範性的,就像標註了非規範性的所有章節一樣。在文件中沒有指定的其他內容都是規範性的。

在這篇文件中的關鍵詞如“必須(MUST)”、“必須不(MUST NOT)”、“需要(RWQUIRE)”、“應該(SHALL)”、“不應該(SHALL NOT)”、“應該(SHOULD)”、“不應該(SHOULD NOT)”、“推薦(RECOMMENDED)”、“也許(MAY)”和“可選(OPTIONAL)”可以按照RFC2119 所述進行解釋。

作為演算法的一部分的命令式語句(如“刪除任何前導空格”或“返回false並且中止後續步驟”)在介紹演算法時應該與關鍵詞一起解釋(“必須(MUST)”、“應該(SHOULD)”、“也許(MAY)”等)。

演算法或者指定步驟中的符合要求的措辭可以通過任何方式表述,只要最終的結果是等價的。(尤其是在演算法定義中,我們的目標是竟可能簡單的操作而不是最求完美。)

2.1 術語和其他公約

_ASCII_表示定義在ANSI.X3-4.1986的字元編碼表。

這個文件參考UTF-8的值,使用在STD 63(RFX3629)定義的UTF-8標準格式。

如命名演算法或者定義關鍵輸入的標識如_this_。

命名header欄位或者變數如|this|。

本文引用了WebSocket連線失敗(_Fail the WebSocket Connection_)這個程式。這個程式位於第7.1.7節。

轉換小寫字元(_Converting a string to ASCII lowercase_)意味著替換從U+0041到U+005A的所有字元(拉丁字母大寫A到Z)為相對應的U+0061到U+007A的字元(拉丁字母小寫A-Z)。

不區分ASCII大小寫(_ASCII case-insensitive_)比較方式意味著通過碼點(code point)比較這兩個字元,如果這兩個字元是U+0041到U+005A(拉丁字母大寫A到Z)和相對應的U+0061到U+007A的字元(拉丁字母小寫A-Z),那麼也認為這兩個字元相等。

文件中URI這個詞被定sj義在了RFC3986

當需要實現WebSocket協議中一部分的_send_資料時,這個實現是有可能會延遲任意時間來進行資料傳輸的,例如,使用資料緩衝區來保證傳送較少的IP資料包。

這個文件在不同的章節會同時使用RFC5234RFC2616這兩個中的擴充巴科斯-瑙爾正規化(ABNF)。

相關文章