【问题标题】:What encoding to use when interpreting HTTP/1.1 header field value解释 HTTP/1.1 标头字段值时使用什么编码
【发布时间】:2015-04-24 07:34:39
【问题描述】:

在 HTTP/1.1 规范中,我在定义标头时得到了这个:

message-header = field-name ":" [ field-value ]

[...]

字段值 = *( 字段内容 | LWS )

field-contet =

OCTET 和 TEXT 的定义是:

OCTET =

TEXT = ;其中 CTL 指的是来自 US-ASCII 字符集的控制字符。

问题:现在,当涉及到标头名称(在定义中称为 field-names)时,使用的编码是 US-ASCII(在 HTTP/1.1 规范中指定) ),但是服务器应用程序如何知道对标头值使用什么编码?

注意:我认为使用 US-ASCII 编码是正常的,但定义为不同的情况留出了足够的空间。

【问题讨论】:

    标签: http character-encoding http-headers


    【解决方案1】:

    非 ASCII 码位的语义本质上是未定义的。避开他们。

    接收者通常使用 ISO-8859-1 进行解码,这至少允许稍后恢复(因为它会保留所有八位字节)。

    (另外:您正在查看错误的规范;RFC 2616 已被 RFC 7230 淘汰)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2021-12-02
      • 2016-09-21
      • 1970-01-01
      • 2010-09-24
      • 2012-05-08
      • 2021-08-23
      • 2010-10-01
      相关资源
      最近更新 更多