RFC2616 Sec 14 “14.26 If-None-Match”
“If-None-Match:*”的含义是,如果原始服务器选择的表示存在,则不得执行该方法,如果表示不存在,则应该执行该方法。此功能旨在用于防止PUT操作之间的比赛。
我不明白这个功能如何防止竞争条件。这与简单地省略“If-Match”标题有什么不同吗?
答案 0 :(得分:2)
想象一下,您的客户认为服务器上没有资源,并且在这种情况下只想在服务器上放置一个资源。
如果两个这样的客户端正在运行,他们都可能认为资源不存在并且同时执行它们的放置。如果没有If-None-Match: *
标头,它们都会执行PUT请求。使用此标头,一个客户端将失败(看到304 - Not Modified
)。