对 HTTP 标头使用百分比编码是否合适或必要?

And*_*ier 8 rest http

当我构建 RESTful 客户端和服务器时,对 HTTP 标头(请求或响应)使用百分比编码是否合适或必要,还是这种类型的编码仅适用于 URI?

And*_*ier 8

因为当我搜索那个问题时,这个问题出现在顶部,并且因为问题HTTP 标头应该使用什么字符编码?没有具体回答关于百分比编码的问题,我尝试简洁地回答 OP 的问题,即使它已经有一定的年龄:

基本上没有,但见下文。

RFC2616仅描述了 URI 的百分比编码(搜索%orHEX HEX或percent),它定义了field-value没有提及的百分比编码。

但是,RFC2616 允许CTL在标头字段值中使用仲裁八位字节(s除外),并且有一个半生不熟的语句提到了非 ISO-8859-1 中的字符的 MIME 编码(RFC2047)(请参阅TEXT其第 2.2 节中的定义)。我称该语句为“半生不熟”,因为它没有明确说明 ISO-8859-1 是用于解释八位字节的强制性字符集,但尽管如此,它还是规范地要求对外部字符使用 MIME 编码那个字符集。似乎没有广泛支持 ISO-8859-1 的使用和头字段值的 MIME 编码。

HTTPbis 似乎已经放弃了这一点,并回到 US-ASCII 来获取标头字段值。有关详细信息,请参阅此答案。

我对此的解读是:

  • 对于标准头字段(在 RFC2616 中定义的那些),不允许使用百分比编码。

  • 对于扩展头字段,RFC2616 中没有描述百分比编码,但是只要结果字符是 US-ASCII(如果你想面向未来),就有应用各种编码的空间,包括百分比编码. 只是不要认为您必须使用百分比编码。

我发现的更多来源: