412 Precondition Failed

HTTP 412 Precondition Failed 用戶端錯誤回應碼表示拒絕訪問目標資源。這發生在條件請求上的方法不是 GETHEAD,並且由 If-Unmodified-Since (en-US)If-None-Match (en-US) 標頭定義的條件未得到滿足時。在這種情況下通常無法進行請求,例如上傳或修改資源,並返回此錯誤回應。

狀態

http
412 Precondition Failed

範例

http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ETag: W/"0815"

避免空中衝突

通過 ETagIf-Match (en-US) 標頭的幫助,你可以檢測到空中編輯衝突。

例如在編輯 MDN 時,當前的 wiki 內容被雜湊並放入回應中的 Etag

http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

當將更改保存到 wiki 頁面(發送資料)時,POST 請求將包含 If-Match (en-US) 標頭,其中包含用於檢查新鮮度的 ETag 值。

http
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

如果雜湊值不匹配,這意味著文檔已在其中編輯,並且會拋出 412 Precondition Failed 錯誤。

規範

Specification
HTTP Semantics
# status.412

瀏覽器相容性

BCD tables only load in the browser

參見