從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