HTTP 空 header

HTTP empty header

在 HTTP 中可以有空的 header 吗? 我所说的空是指“:”没有 header 名称,也没有 header 值。 同样的问题也与HTTP2有关(假设是相同的答案但可以肯定)。

谢谢。

HTTP 定义一个头域为:

     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

token部分后来定义为:


     token          = 1*tchar

     tchar          = "!" / "#" / "$" / "%" / "&" / "'" / "*"
                    / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
                    / DIGIT / ALPHA
                    ; any VCHAR, except delimiters

言下之意,header名称必须至少为1个字节,value可以是0个或多个字符。

HTTP/2 使用相同的基础数据模型。

https://www.rfc-editor.org/rfc/rfc7230#section-3.2.4