Ответ 1
If-Match
Сервер ДОЛЖЕН вернуть ответ 412 (предварительный отказ), если:
- Ни один из тегов сущностей не соответствует,
- или "*" и не существует существующего объекта
If-Match следует игнорировать, если:
- любой из тегов сущностей соответствует
- или если запрос приводит к чему-либо другому, кроме состояния 2xx или 412 (без If-Match)
- или если задано "*", и любой существующий объект существует для ресурса
Заключение в if-match:
- Значение "If-Match: *" заключается в том, что метод должен выполняться, если представление, выбранное исходным сервером, существует и не должно выполняться, если представление не существует.
If-Unmodified-С
Сервер ДОЛЖЕН вернуть ответ 412 (предварительный отказ), если:
- запрошенный вариант был изменен с указанного времени
If-Unmodified-Since следует игнорировать, если
- запрашиваемый ресурс не был изменен с момента, указанного в этом поле
- или обычно запрос (т.е. без заголовка If-Unmodified-Since) приведет к чему-либо, кроме состояния 2xx или 412
- или указанная дата недействительна
If-Range
Неформально, его смысл заключается в том, "если сущность не изменилась, пришлите мне часть (я), которую я пропускаю; в противном случае отправьте мне всю новую сущность '
Предпосылки:
- Заголовок
If-Range
ДОЛЖЕН использоваться только вместе с заголовкомRange
, а MUST игнорируется, если запрос не включает aRange
, или если сервер не поддерживает операцию поддиапазона.
Сервер ДОЛЖЕН предоставить ответ 206 (частичный контент), если заголовок If-Range
соответствует текущему тегу объекта для объекта. В противном случае сервер ДОЛЖЕН возвратить весь объект, используя ответ 200 (OK).
Undefined результаты
Наличие следующей комбинации заголовков приводит к результату undefined:
- If-Modified-Since и If-Match
- If-Modified-Since и If-Unmodified-Since
- If-None-Match и If-Match
- If-None-Match и If-Unmodified-Since
Эти правила были разложены из следующих (можно найти в RFC2616):
- If-Match и (If-None-Match или If-Modified-Since)
- If-Modified-Since и (If-Match или If-Unmodified-Since)
- If-None-Match и (If-Match или If-Unmodified-Since)
- If-Unmodified-Since и (If-None-Match или If-Modified-Since)