如果 - 无匹配:*

时间:2014-03-07 15:43:46

标签: http if-none-match

RFC2616 Sec 14 “14.26 If-None-Match”

  

“If-None-Match:*”的含义是,如果原始服务器选择的表示存在,则不得执行该方法,如果表示不存在,则应该执行该方法。此功能旨在用于防止PUT操作之间的比赛。

我不明白这个功能如何防止竞争条件。这与简单地省略“If-Match”标题有什么不同吗?

1 个答案:

答案 0 :(得分:2)

想象一下,您的客户认为服务器上没有资源,并且在这种情况下只想在服务器上放置一个资源。

如果两个这样的客户端正在运行,他们都可能认为资源不存在并且同时执行它们的放置。如果没有If-None-Match: *标头,它们都会执行PUT请求。使用此标头,一个客户端将失败(看到304 - Not Modified)。