412 预期失败

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 值,用于检查服务器上资源的新鲜度。

http
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

如果哈希值不匹配,则表示文档已在中间被编辑,并将抛出 412 Precondition Failed 错误。

规范

规范
HTTP 语义
# status.412

另请参阅