412 Precondition Failed
HTTP 412 Precondition Failed 客戶端錯誤響應狀態碼錶示對目標資源的訪問被拒絕。當條件請求(針對 GET 或 HEAD 以外的方法)中由 If-Unmodified-Since 或 If-Match 標頭定義的條件未能滿足時,就會發生這種情況。在這種情況下,請求(通常是資源的上傳或修改)無法完成,並返回此錯誤響應。
狀態
http
412 Precondition Failed
示例
先決條件失敗
http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ETag: W/"0815"
避免“空中碰撞”
藉助 ETag 和 If-Match 標頭,你可以防止衝突或“空中碰撞”。例如,在編輯某些維基頁面時,內容會被雜湊處理並放入成功響應的 ETag 中
http
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
當儲存維基頁面的更改(提交資料)時,POST 請求將包含 If-Match 標頭,其中包含客戶端從上次編輯中儲存的 ETag 值,以檢查伺服器上資源的 freshness。
http
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
如果雜湊不匹配,則表示文件在此期間已被編輯,並會丟擲 412 Precondition Failed 錯誤。
規範
| 規範 |
|---|
| HTTP 語義 # status.412 |