如何解释多个Accept-*标题

Fli*_*mzy 2 http http-headers http-accept-language http-accept-header

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

服务器应该如何解释多个Accept,Accept-Encoding,Accept-Language等标题?

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

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

Accept-Language: en
Accept-Language: pt
Run Code Online (Sandbox Code Playgroud)

服务器应该:

  1. 结合结果,有效Accept-Language: en, pt吗?
  2. 只荣誉第一个(en)?
  3. 只荣誉最后一个(pt)?
  4. 抛出一个合适的姿势(也许回归400状态?)

选项#1对我来说似乎是最自然的,最有可能是客户意味着什么,并且即使不是客户意味着什么,也最不可能完全打破期望.

但是有没有关于如何处理这些情况的实际规则(理想情况下由RFC指定)?

Jul*_*hke 5

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

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