If-Match
If-Match HTTP 請求頭使請求具有條件性。
伺服器僅當資源與列出的 ETag 值之一匹配時,才會返回針對 GET 和 HEAD 方法的請求資源,或針對 PUT 及其他非安全方法的上傳資源。如果條件不匹配,則返回 412(前提條件失敗)響應。
與儲存的 ETag 的比較使用強比較演算法,這意味著只有兩個檔案逐位元組完全相同才被視為相同。如果列出的 ETag 帶有 W/ 字首,表示弱實體標記,則此比較演算法將永遠無法匹配它。
有兩種常見的用例
語法
http
If-Match: <etag_value>
If-Match: <etag_value>, <etag_value>, …
指令
<etag_value>-
唯一表示請求資源的實體標記。它們是由雙引號括起來的 ASCII 字串(例如
"675af34563dc-tr34")。它們可以以W/為字首,表示它們是“弱”的,即它們在語義上表示資源,而不是逐位元組表示。但是,在If-Match標頭中,弱實體標記將永遠不會匹配。 *-
星號是一個表示任何資源的特殊值。請注意,如果源伺服器沒有目標資源的當前表示,則此值必須匹配為
false。
示例
http
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-Match: "67ab43", "54ed21", "7892dd"
If-Match: *
規範
| 規範 |
|---|
| HTTP 語義 # field.if-match |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。