我有一个 Web 服务,它为每个响应添加一个 ETag,以便将来的调用可以使用 HTTP 304(未修改)状态。我生成的 ETag 实际上只是查询类型的 Base64 编码以及时间戳。
我遇到的问题是浏览器是否请求具有不同接受语言的相同资源。浏览器当前发送相同的 If-None-Match 标头,因此响应是 304,即使实际资源会以不同的语言返回。所以我认为这样做的方法是添加一个 Vary Header,以向客户端指定响应随 Accept & Accept-Language 的不同而不同,如下所示。
变化:接受,接受-语言
但是,无论接受语言如何,我的浏览器 (Chrome) 都使用相同的 ETag。在这里使用的正确约定是什么?
谢谢