http - 如何处理接受语言回退?

标签 http http-headers locale

使用 Accept-Language header 中的语言环境处理回退的正确方法是什么?在从区域设置中删除任何子标签(区域等)之前,应用程序是否应该尝试完美匹配所有请求的区域设置?或者它是否应该以相反的方式发生,即使请求中不存在那些无区域设置? HTTP spec没有给出任何指示。

最佳答案

RFC 2616 已于 2014 年被 RFC 7230 至 7235 废弃。请不要再引用它。通过新的 RFC,Accept-Language header 现在受 RFC 7231, section 5.3.5 的授权.所述部分指的是RFC 4647, section 3.3 ,它已经对 RFC 2616 具有权威性。此外,RFC 7231 明确表示将使用“基本过滤”匹配策略,这在 RFC 4647, section 3.3.1 中有详细描述。 .

基本过滤或多或少是一种前缀搜索。但是请注意,此搜索寻找的是句法 前缀,而不是词法 前缀。一个应用程序应该按照质量的降序(如果没有提供质量,这是客户端提供的顺序)通过请求的语言标签列表,并查看每个标签是否可以被统计。如果没有一个可以统计,RFC 7231 指出:

If the header field is present in a request and none of the available representations for the response have a matching language tag, the origin server can either disregard the header field by treating the response as if it is not subject to content negotiation or honor the header field by sending a 406 (Not Acceptable) response.

不过,相关部分确实强调忽略语言要求是更明智的做法。

关于http - 如何处理接受语言回退?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943441/

相关文章:

http - 用于 Linux 的 TCPMon 等任何工具都可以随时随地编辑消息

HTTP:主机 header 字段中是否允许使用 IP 地址?

java - HttpGet 添加 header

Java 8 : DateTimeFormatter not translating timezone based on locale

sorting - unix sort -n -t","给出意外结果

http - 在 jsf 网络应用程序上显示即时生成的图像。

http - 如何在 JSP 页面中使用 HTTP POST 将 FORM 发送到 Paypal 并读取响应?

AndroidHttpClient 期望响应代码 302 但收到 200

php - Apache 不适用于 HTTP_RANGE?

C# - 我是否替换了完美的代码?