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

时间:2009-11-05 17:57:19

标签: utf-8 http-headers

我在规范中找不到它应该是的任何内容。我见过几个浏览器将其用户代理设置为非UTF8编码的字符串。但是有一个Content-Type请求标头指定媒体类型(和字符集),我不确定它是否仅适用于请求的主体或标题。

3 个答案:

答案 0 :(得分:2)

Content-Type标头适用于正文,而不是标题。

答案 1 :(得分:2)

HTTP RFC将标题内容定义为类型* TEXT,它在第15页或第15页上定义为ISO-8859-1,除非非ISO-8859-1是根据RFC 2047编码的。

答案 2 :(得分:1)

HTTP header field values可能包含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>

有关 OCTET TEXT 的定义,请参阅Basic Rule

OCTET          = <any 8-bit sequence of data>
TEXT           = <any OCTET except CTLs,
                 but including LWS>

但通常只有ASCII字符也用于字段值。