2010-03-02 75 views
10

特別是在JAX-RS(我不確定這是否相關)中,有些方法允許您將EntityTags添加到響應中。實體標籤究竟是什麼以及它們使用了什麼實際的方法?什麼是HTTP響應實體標籤?

回答

12

實體標籤是將緩存合併到HTTP協議中的一種方式。當服務器返回響應時,它可以附加一個ETag標題,該標題給出一個值,該值表示響應客戶請求返回的對象的狀態。

當客戶端發出相同響應的後續請求時,它可以使用If-None-Match標頭髮送請求中的ETag,服務器可以使用它來確定是否需要發送新響應(即請求的狀態對象發生了變化),還是它可以響應一條304 Not Modified響應,指示客戶端使用其本地緩存副本。

這是最常用於REST風格的API和緩存和對象狀態相關的應用程序。

http://en.wikipedia.org/wiki/HTTP_ETag

3

除了朱利安參考:一般來說,實體標籤使客戶端,服務器和中介可以就資源的特定表示(因此實體標籤)達成一致。

該協議用於減少網絡使用(條件檢索)和併發控制(條件更新)。前者按照「如果它不是我已經擁有的表示形式發送給我這個資源的當前表示」,並且後者按照「將此更改應用於該資源,如果它仍然具有我期望的狀態它有「)。

其餘部分在HTTp規範中有詳細說明。

1月