我刚刚阅读了HTTP标准(支持的标准更准确)第1部分,并且在第3部分,第2部分到最后一段中与他们认为是“空白”的内容相混淆: https://tools.ietf.org/html/rfc7230#section-3
由于返回(CRLF)终止HTTP标头,因此可能隐含的唯一空格是0x20
'空格'字符。维基百科列出了另一种空白ASCII符号,如“非破坏空间”0xA0
,所以我仍然不理解这个(“空白”)概念。
请帮助我弄清楚它在本标准范围内的真正含义。
答案 0 :(得分:5)
您链接到的RFC 7230完全定义了它认为标题中的空格:
HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] header-field = field-name ":" OWS field-value OWS field-name = token field-value = *( field-content / obs-fold ) field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] field-vchar = VCHAR / obs-text obs-fold = CRLF 1*( SP / HTAB ) ; obsolete line folding ; see Section 3.2.4 obs-text = %x80-FF OWS = *( SP / HTAB ) ; optional whitespace
如您所见,SP
(空格)和HTAB
(水平制表符)是唯一定义的空白字符。它们在RFC 5234 Appendix B.1中定义,RFC 7230链接到:{/ p>
HTAB = %x09 ; horizontal tab SP = %x20
答案 1 :(得分:1)
1)另见https://tools.ietf.org/html/rfc7230#section-3.2.3。
2)HTAB也是空白。
3)在第3节的上下文中,"发送者不得在起始行和第一个头字段之间发送空格。"也指额外的换行符。