ETag with Accept-Language

时间:2016-12-06 10:24:01

标签: etag http-status-code-304 if-none-match

我有一个Web服务,它将ETag放在每个响应上,以便将来的调用可以使用HTTP 304(未修改)状态。 ETag我实际上只生成了查询类型的Base64编码以及时间戳。

我遇到的问题是浏览器是否使用不同的Accept-Language请求相同的资源。浏览器当前发送相同的If-None-Match标头,因此响应是304,甚至认为实际资源将以不同的语言返回。所以我认为这样做的方法是添加一个Vary Header,以指定客户端响应变量与Accept& Accept-Language,如下所示。

变化:接受,接受 - 语言

然而,无论接受语言如何,我的浏览器(Chrome)都使用相同的ETag。在这里使用的正确惯例是什么?

由于

1 个答案:

答案 0 :(得分:1)

电子标签识别响应内容。 因此,最好使用响应体哈希进行E-Tag构建。 至少你可以使用查询的哈希和连接的语言。