如何解释多个Accept- *标题

时间:2016-10-07 08:35:21

标签: http http-headers http-accept-language http-accept-header

我对RFC 2616的解读没有回答我的问题:

服务器应如何解释多个接受接受编码接受语言等标题?

当然,这通常应该是罕见的,但是我可以假设每个HTTP客户端实际上都应该做到这一点。

想象一下,HTTP请求包括以下内容:

Accept-Language: en
Accept-Language: pt

服务器应该:

  1. 将结果合并到有效的Accept-Language: en, pt
  2. 仅尊重第一个(en)?
  3. 仅尊重最后一个(pt)?
  4. 投入合适的姿势(或许是400状态?)
  5. 选项#1对我来说似乎是最自然的,最有可能是客户意味着什么,并且即使它不是客户的意思,也最不可能完全打破期望。

    但是,是否有任何实际规则(理想情况下由RFC指定)如何处理这些情况?

1 个答案:

答案 0 :(得分:5)

1)您正在查看过时的RFC。 RFC 2616已于两年前废弃。

2)那说,答案是1);请参阅https://greenbytes.de/tech/webdav/rfc7230.html#rfc.section.3.2.2.p.3:"收件人可以将多个具有相同字段名称的标题字段组合成一个" field-name:field-value"通过将每个后续字段值按顺序附加到组合字段值,用逗号分隔,从而不改变消息的语义。 (...)"