3

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

服务器应该如何解释多个AcceptAccept-EncodingAccept-Language等标头?

当然,这通常应该是一种罕见的情况,但我认为每个 HTTP 客户端实际上都在做它应该做的事情。

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

Accept-Language: en
Accept-Language: pt

服务器应该:

  1. 结合结果,得出有效的Accept-Language: en, pt?
  2. 只尊重第一个(en)?
  3. 只尊重最后一个(pt)?
  4. 抛出一个嘶嘶声(返回 400 状态,也许?)

选项#1 对我来说似乎是最自然的,最有可能是客户的意思,即使不是客户的意思,也最不可能完全打破期望。

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

4

1 回答 1

6

1) 您正在查看一个过时的 RFC。RFC 2616 在两年前已经过时。

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

于 2016-10-07T09:45:19.307 回答