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 |