412 预期失败
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
值,用于检查服务器上资源的新鲜度。
http
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
如果哈希值不匹配,则表示文档已在中间被编辑,并将抛出 412 Precondition Failed
错误。
规范
规范 |
---|
HTTP 语义 # status.412 |