在HTTP / 1.1规范中,我在定义标题时得到了这个:
message-header = field-name“:”[field-value]
[...]
field-value = *(field-content | LWS)
field-contet =<构成字段值的OCTET,由* TEXT或令牌,分隔符和引用字符串>的组合组成
,OCTET和TEXT的定义是:
OCTET =<任何8位数据序列>
TEXT =<除CTL之外的任何OCTET,但包括LWS> ;其中CTL是指来自US-ASCII字符集的控制字符。
问题:现在,当涉及标题名称(在定义中称为字段名称)时,使用的编码是US-ASCII(在HTTP / 1.1规范中指定) ),但服务器应用程序如何知道用于标头值的编码?
注意:我认为US-ASCII编码是正常的,但该定义为不同的情况提供了足够的空间。
答案 0 :(得分:1)
非ASCII代码点的语义基本上是未定义的。避免它们。
收件人通常使用ISO-8859-1解码,这至少允许稍后恢复(因为它会保留所有八位字节)。
(另外:您正在查看错误的规范; RFC 2616已被RFC 7230淘汰)