412 Precondition Failed

HTTP 412 Precondition Failed 客戶端錯誤響應狀態碼錶示對目標資源的訪問被拒絕。當條件請求(針對 GETHEAD 以外的方法)中由 If-Unmodified-SinceIf-Match 標頭定義的條件未能滿足時,就會發生這種情況。在這種情況下,請求(通常是資源的上傳或修改)無法完成,並返回此錯誤響應。

狀態

http
412 Precondition Failed

示例

先決條件失敗

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

避免“空中碰撞”

藉助 ETagIf-Match 標頭,你可以防止衝突或“空中碰撞”。例如,在編輯某些維基頁面時,內容會被雜湊處理並放入成功響應的 ETag

http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

當儲存維基頁面的更改(提交資料)時,POST 請求將包含 If-Match 標頭,其中包含客戶端從上次編輯中儲存的 ETag 值,以檢查伺服器上資源的 freshness。

http
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

如果雜湊不匹配,則表示文件在此期間已被編輯,並會丟擲 412 Precondition Failed 錯誤。

規範

規範
HTTP 語義
# status.412

另見