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 |