Если нет - совпадать: *
RFC2616, раздел 14 "14.26 Если совпадение отсутствует"
Значение "If-None-Match: *" заключается в том, что метод НЕ ДОЛЖЕН выполняться, если представление, выбранное сервером источника... существует, и ДОЛЖНО выполняться, если представление не существует. Эта функция предназначена для предотвращения гонок между операциями PUT.
Я не понимаю, как эта функция может предотвратить условия гонки. Отличается ли это от простого пропуска заголовка "If-Match"?
1 ответ
Представьте, что ваш клиент думает, что ресурс не существует на сервере, и хочет разместить в этом случае только один ресурс на сервере.
Если два таких клиента работают, они оба могут подумать, что ресурс не существует, и выполнять свои операции одновременно. Без If-None-Match: *
заголовок они оба делают запрос PUT. С этим заголовком один клиент потерпит неудачу (видя 304 - Not Modified
).