0

我想知道"Accept Language"如果服务器具有请求的资源但不是指定的语言,服务器应该如何使用 HTTP 标头。服务器是否应该返回任何类型的错误(404,或“找不到资源”等)或成功但可用语言的资源?

HTTP 规范是否提到或推荐了这种情况下的用法?
我阅读了“RFC2616 - 14.4 Accept-Language”,但对我来说不是很清楚。

我知道快速的解决方案是添加Accept Language: *到标题中,但我想了解这里的内容并尝试在右侧解决这个问题(可能是服务器或客户端)

任何帮助表示赞赏。

4

1 回答 1

2

首先,不推荐使用 RFC 2616,您应该参考 RFC 7230–7235。

RFC 7231 – 5.3.5 中。接受语言,您可以阅读:

如果请求中存在标头字段并且响应的可用表示中没有匹配的语言标签,则源服务器可以通过将响应视为不受内容协商的方式来忽略标头字段或尊重标头字段通过发送 406(不可接受)响应。但是,不鼓励后者,因为这样做会阻止用户访问他们可能能够使用的内容(例如,使用翻译软件)。

因此,要么忽略标题并使用默认语言表示进行响应。或者以不可接受的方式回应请求,这是作者不鼓励的。但是,您可以使用 406 响应来提供可用语言表示的列表。

于 2015-04-05T12:16:53.217 回答