首页/网络/协议速查/If-Match 匹配前置条件
HTTP 头与缓存70 条

If-Match 匹配前置条件

条件请求头:仅当资源的当前 ETag 与给出值匹配时才执行;用于防止并发覆盖(乐观锁)。

协议速查网络更新于 2026-10-12
名称If-Match
作用匹配则执行(否则 412)
规范RFC 9110 §13.1.1
通配"*" 匹配任意当前表示;比较采用强校验

乐观锁更新流程

乐观锁更新流程
# 1) 读取并记录 ETag
ETAG=$(curl -sI https://api.example.com/docs/7 | awk '/[Ee][Tt]ag:/{print $2}' | tr -d '\r')
# 2) 带条件更新
curl -si -X PUT https://api.example.com/docs/7 -H "If-Match: $ETAG" -d @doc.md
并发冲突返回 412;服务端也可配合要求必须携带条件头的 428 策略,强制客户端使用乐观锁。

数据来源与参考

  • RFC 9110 §13.1.1 If-Match
  • RFC 9110 §8.8.3 ETag

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌