从Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content: 原始服务器不能发送一个验证报头字段(Section 7.2),诸如ETag或Last-Modified场,在向PUT的成功响应,除非该请求的表示数据被保存而没有任何应用于身体的变换(即,资源的新的表示数据与在PUT请求中接收到的表示数据相同)并且验证器字段值反映新的表示。
我有一个Web服务,它将ETag放在每个响应中,以便将来的调用可以使用HTTP 304(未修改)状态。 ETag实际上只是生成查询类型的Base64编码以及时间戳。 我遇到的问题是,如果浏览器请求具有区别Accept-Language的相同资源。浏览器当前发送相同的If-None-Match标题,所以响应是304,即使认为实际资源会以不同的语言返回。所以我认为这样做的方法是添加一个Vary Hea