作爲Spring一部分的ShallowEtagHeaderFilter在Http請求上處理If-None-Match標頭。作爲Http 1.1規範的一部分,如果請求上發送的If-None-Match頭的內容與Etag頭相同,則返回304的Http狀態 - 未修改。這對緩存很有幫助,因爲這意味着如果Etag在客戶端和服務器上是相同的,那麼內容將是相同的。在Spring中實現If-Match HTTP標頭
這很好。
但是我的問題是,Spring是否支持If-Match頭(同樣是HTTP 1.1的一部分)而不是If-None-Match,因爲就文檔而言,它看起來像ShallowEtagHeaderFilter只處理If -None-Match標題。我需要If-Match頭來防止覆蓋前一個請求的同時請求。 IE我只希望處理請求,如果Etags是相同的,因此他們有實體的最新版本。
我不太明白怎麼會彈簧支撐的if-match連理論上。爲了能夠支持if-match,你實際上需要生成的實際對象,但過濾器沒有這些。如果你之後只做了if-none-match,那麼對於POST/PUT用例來說,支持是無用的。他們當然可以支持GET,但這沒有意義。爲什麼有人希望只有已經有文件纔有文件? – eis 2013-10-23 15:47:40
>爲什麼有人想要一個文件,只有當他們已經有了它?因爲它可能有變化? (想想描述客戶的JSON資源) – gjambet 2015-11-16 09:28:42