Если нет - совпадать: *

RFC2616, раздел 14 "14.26 Если совпадение отсутствует"

Значение "If-None-Match: *" заключается в том, что метод НЕ ДОЛЖЕН выполняться, если представление, выбранное сервером источника... существует, и ДОЛЖНО выполняться, если представление не существует. Эта функция предназначена для предотвращения гонок между операциями PUT.

Я не понимаю, как эта функция может предотвратить условия гонки. Отличается ли это от простого пропуска заголовка "If-Match"?

1 ответ

Решение

Представьте, что ваш клиент думает, что ресурс не существует на сервере, и хочет разместить в этом случае только один ресурс на сервере.

Если два таких клиента работают, они оба могут подумать, что ресурс не существует, и выполнять свои операции одновременно. Без If-None-Match: * заголовок они оба делают запрос PUT. С этим заголовком один клиент потерпит неудачу (видя 304 - Not Modified).

Другие вопросы по тегам