2

RFC2616 Sec 14 “14.26 If-None-Match”

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

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

4

1 回答 1

2

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

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

于 2014-03-07T15:59:03.823 回答