Ответ 1
От STD68 Добавленный BNF для синтаксиса Технические характеристики: ABNF
LWSP = *(WSP / CRLF WSP) ; Use of this linear-white-space rule permits
; lines containing only white space*
WSP = SP / HTAB ; white space
CRLF = CR LF ; Internet standard newline
SP = %x20 ; space
HTAB = %x09 ; horizontal tab
CR = %x0D ; carriage return
LF = %x0A ; linefeed
Комментарий к LWSP изменился в STD68 (aka RFC5234) из RFC2234 и RFC4234 и теперь дает советы против использования этого определения в новых документах.
Простой английский. Линейное белое пространство: любое количество пробелов или горизонтальных вкладок, а также символ новой строки (CRLF), если за ним следует хотя бы одна пробельная или горизонтальная вкладка.
Пример строк, которые являются линейным пробелом:
- [SP]
- [HTAB]
- [SP] [SP]
- [HTAB] [HTAB]
- [SP] [HTAB] [SP]
- [SP] [CR] [LF] [SP]
- [CR] [LF] [SP] [CR] [LF] [SP] [CR] [LF] [HTAB]
Пример строк, которые не являются линейным пробелом:
- [SP] [VTAB] [SP] Вкладка Vertical не входит в спецификацию
- [SP] [CR] [LF] [CR] [LF] [CR] [LF] CRLF, за которым следует CRLF, не входит в спецификацию
- [SP] [CR] [LF] [CR] [LF] [SP] Это два линейных белых пробела. Первый - это только первое пространство, поскольку за первым CRLF не следует пробел или htab. Второй - это последний CRLF и SP.
Благодаря Юкке К. Корпеле, чтобы напомнить мне проверить устаревшие RFC и unwind для пояснения, что за CRLF должно следовать пробел или htab, чтобы быть частью LWSP.