HTTP请求头必须是UTF-8编码的吗?

HTTP请求头必须是UTF-8编码的吗?,utf-8,http-headers,Utf 8,Http Headers,我在说明书中找不到任何说明应该是的东西。我见过一些浏览器将其用户代理设置为非UTF8编码的字符串。但是,有一个Content Type请求头指定了媒体类型(和字符集),我不确定这是否仅适用于请求的正文或头。可能包含ASCII字符以外的字符: message-header = field-name ":" [ field-value ] field-name = token field-value = *( field-content | LWS ) field-content =

我在说明书中找不到任何说明应该是的东西。我见过一些浏览器将其用户代理设置为非UTF8编码的字符串。但是,有一个Content Type请求头指定了媒体类型(和字符集),我不确定这是否仅适用于请求的正文或头。

可能包含ASCII字符以外的字符:

message-header = field-name ":" [ field-value ]
field-name     = token
field-value    = *( field-content | LWS )
field-content  = <the OCTETs making up the field-value
                 and consisting of either *TEXT or combinations
                 of token, separators, and quoted-string>
消息头=字段名“:“[字段值]
字段名=令牌
字段值=*(字段内容| LWS)
字段内容=
有关八位字节和文本的定义,请参见:

OCTET=
文本=

但通常,字段值也只使用ASCII字符。

内容类型标题适用于正文,而不是标题。

HTTP RFC将标题内容定义为类型*文本,在第15页上或大约第15页上定义为ISO-8859-1,除非非ISO-8859-1根据RFC 2047进行编码。

+1。注:对RFC2047的引用被广泛认为是一个错误,因为2047编码字不能明确包含在这样的上下文中。2047引用已从HTTP上较新的挂起标准工作中删除。
OCTET          = <any 8-bit sequence of data>
TEXT           = <any OCTET except CTLs,
                 but including LWS>