これは一般的な ABNF 構文の一部ではありません (現在RFC 5234で定義されていますが、RFC 2282 が作成された時点ではRFC 2234が使用されていた ABNF の定義でした)。FWS
とは、CFWS
電子メール RFC 自体で定義された特別なトークンです ( RFC 2822 のセクション 3.2.3、またはRFC 5322 のセクション 3.2.2を参照してください。RFC 2822 は 2008 年に廃止されました)。
RFC 5322 から:
各ヘッダー フィールドは、論理的には、フィールド名、コロン、およびフィールド本体で構成される 1 行の文字です。ただし、便宜上、および 1 行あたり 998/78 文字の制限に対処するために、ヘッダー フィールドのフィールド本体部分を複数行の表現に分割できます。これは「折り畳み」と呼ばれます。一般的な規則として、この仕様で (単なる WSP 文字ではなく) 空白を折りたたむことができる場合は、WSP の前に CRLF を挿入できます。
たとえば、ヘッダー フィールドは次のとおりです。
Subject: This is a test
次のように表すことができます。
Subject: This
is a test
...
ヘッダー フィールドのこの折り畳まれた複数行の表現から単一行の表現に移行するプロセスは、「展開」と呼ばれます。展開は、直後に WSP が続く CRLF を削除するだけで実行できます。各ヘッダー フィールドは、さらに構文的および意味的な評価を行うために展開された形式で処理する必要があります。展開されたヘッダー フィールドには長さの制限がないため、不確定な長さになる場合があります。
...
折りたたみに使用される空白文字 (セクション 2.2.3で説明) を含む空白文字は、ヘッダー フィールド本体の多くの要素の間に表示される場合があります。また、コメントとして扱われる文字列は、括弧で囲まれた文字として構造化フィールド本体に含まれる場合があります。以下は、折り畳み空白 (FWS) とコメント構造を定義しています。
括弧で囲まれた文字列は、セクション 3.2.4で定義されている「引用文字列」内に表示されない限り、コメントと見なされます 。コメントは入れ子になる場合があります。
この仕様には、コメントと FWS を自由に挿入できる場所がいくつかあります。その構文に対応するために、「CFWS」の追加のトークンが、コメントおよび/または FWS が発生する場所に対して定義されます。ただし、この仕様で CFWS が発生する場合、折りたたまれたヘッダー フィールドの行が完全に WSP 文字で構成され、他には何もないような方法で CFWS を挿入してはなりません (MUST NOT)。
FWS = ([*WSP CRLF] 1*WSP) / obs-FWS
; Folding white space
ctext = %d33-39 / ; Printable US-ASCII
%d42-91 / ; characters not including
%d93-126 / ; "(", ")", or "\"
obs-ctext
ccontent = ctext / quoted-pair / comment
comment = "(" *([FWS] ccontent) [FWS] ")"
CFWS = (1*([FWS] comment) [FWS]) / FWS
この仕様全体を通して、FWS (折り畳み空白トークン) が現れる場所は、
セクション 2.2.3で説明されているように、折り畳みが行われる可能性がある場所を示します。折りたたみがメッセージ (つまり、CRLF とそれに続く任意の WSP を含むヘッダー フィールド本体) に出現する場合は常に、この仕様に従って、そのヘッダー フィールドに対してさらなる意味分析が実行される前に、展開 (CRLF の削除) が実行されます。つまり、FWS に表示される CRLF は意味的に「不可視」です。
コメントは通常、人間が読める情報テキストを提供するために、構造化されたフィールド本体で使用されます。コメントには FWS を含めることができるため、コメント内での折りたたみが許可されます。また、引用ペアはコメントで許可されているため、引用ペアとして表示される限り、括弧とバックスラッシュ文字がコメントに表示される可能性があることに注意してください。意味的には、括弧はコメントの一部ではありません。コメントは、2 つの括弧の間に含まれるものです。前述のように、コメント内に表示される引用符付きペアの "" と FWS の CRLF は意味的に「見えない」ため、コメントの一部ではありません。
構造化されたヘッダー フィールド内の字句トークンの間に発生する FWS、コメント、または CFWS の実行は、
意味的には単一の空白文字として解釈されます。