线性空白究竟是什么?(LWS/LWSP)

Ref*_*ion 23 whitespace character special-characters

我看到提到这个术语,以及CRLF,CR,LF,CTL(控制字符)和SP(空格).

如果它不是常规的内联空格(),那么它是什么字符?

som*_*ome 36

来自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
Run Code Online (Sandbox Code Playgroud)

关于LWSP的评论在STD68(又名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] [CR] [LF] [CR] [LF] [SP] [CR] [LF] [SP] [CR] [LF] 这是两个线性空格:[SP]和[SP] [CR] [LF] [SP].[CR] [LF]如果它具有[SP]或[HTAB]只包括.
  • [SP] [VTAB] [SP] 两个线性空格:[SP]和[SP],由垂直制表符分隔.
  • [SP] [CR] [LF] [CR] [LF] [CR] [LF] 只有第一个[SP]是线性空白区域.CRLF后跟CRLF不是规范的一部分

感谢Jukka K. Korpela提醒我检查已废弃的RFC并解除清楚,CRLF必须跟随空格或htab成为LWSP的一部分.