If-None-Match header
HTTP If-None-Match 請求頭使請求條件化。伺服器只在沒有匹配 If-None-Match 頭中任何 ETag 的情況下,才會在 GET 和 HEAD 方法中返回所請求的資源,並附帶 200 狀態。對於其他方法,請求只在最終存在的資源的 ETag 不匹配所列出的任何值時才會被處理。
當 GET 和 304 Not Modified 狀態,以及任何在 200 響應中會發送的以下頭欄位:Cache-Control、Content-Location、Date、ETag、Expires 和 Vary。對於應用於伺服器端更改的方法,當條件失敗時,使用 412 Precondition Failed。
與儲存的 ETag 的比較使用弱比較演算法,這意味著如果內容等效,則認為兩個檔案是相同的——它們不必逐位元組相同。例如,兩個僅在頁尾建立日期不同的頁面仍會被認為是相同的。
當與 If-Modified-Since 結合使用時,如果伺服器支援,If-None-Match 具有優先權。
在請求中使用 If-None-Match 有兩種常見情況:
語法
http
If-None-Match: "<etag_value>"
If-None-Match: "<etag_value>", "<etag_value>", …
If-None-Match: *
指令
<etag_value>-
唯一表示所請求資源的實體標籤。它們是放置在雙引號之間的 ASCII 字元字串(例如
"675af34563dc-tr34"),並且可以字首W/以指示應使用弱比較演算法(這對於If-None-Match來說是無用的,因為它只使用該演算法)。 *-
星號是一個特殊值,表示任何資源。它們僅在上傳資源時有用,通常與
PUT一起使用,以檢查是否已上傳具有相同標識的資源。
示例
http
If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-None-Match: W/"67ab43", "54ed21", "7892dd"
If-None-Match: *
規範
| 規範 |
|---|
| HTTP 語義 # field.if-none-match |
瀏覽器相容性
載入中…