我对RFC 2616的阅读没有回答我的问题:
服务器应该如何解释多个Accept、Accept-Encoding、Accept-Language等标头?
当然,这通常应该是一种罕见的情况,但我认为每个 HTTP 客户端实际上都在做它应该做的事情。
想象一个 HTTP 请求包括以下内容:
Accept-Language: en
Accept-Language: pt
服务器应该:
- 结合结果,得出有效的
Accept-Language: en, pt
? - 只尊重第一个(
en
)? - 只尊重最后一个(
pt
)? - 抛出一个嘶嘶声(返回 400 状态,也许?)
选项#1 对我来说似乎是最自然的,最有可能是客户的意思,即使不是客户的意思,也最不可能完全打破期望。
但是对于如何处理这些情况,是否有任何实际规则(最好由 RFC 指定)?