If-Match
Сервер ДОЛЖЕН вернуть ответ 412 (Precondition Failed), если:
- ни один из тегов сущностей не соответствует,
- или "*" задано, и текущий объект не существует
If-Match следует игнорировать, если:
- любой из тегов объекта соответствует
- или если запрос приводит к чему-либо, кроме статуса 2xx или 412 (без If-Match)
- или если задано "*" и для ресурса существует какая-либо текущая сущность
Вывод по if-match :
- Значение "If-Match: *" заключается в том, что метод должен выполняться, если представление, выбранное сервером происхождения ... существует, и не должно выполняться, если представление не существует.
If-Match в RFC2616
If-Unmodified-С
Сервер ДОЛЖЕН вернуть ответ 412 (Precondition Failed), если:
- запрошенный вариант был изменен с указанного времени
If-Unmodified-Since следует игнорировать, если
- запрошенный ресурс не был изменен со времени, указанного в этом поле
- или запрос в обычном режиме (т. Е. Без заголовка If-Unmodified-Since) приведет к чему-либо, кроме статуса 2xx или 412
- или указанная дата недействительна
If-Unmodified-Since в RFC2616
If-Range
Неофициально, его значение таково: «если сущность не изменилась, пришлите мне часть (и), которую я пропускаю; в противном случае отправьте мне всю новую сущность '
Условия:
- Заголовок
If-Range
СЛЕДУЕТ использовать только вместе с заголовком Range
, и ДОЛЖЕН игнорироваться, если запрос не включает a Range
header или если сервер не поддерживает операцию поддиапазона.
Сервер ДОЛЖЕН предоставить ответ 206 (Частичное содержимое), если заголовок If-Range
соответствует текущему тегу объекта для объекта. В противном случае сервер ДОЛЖЕН вернуть весь объект, используя ответ 200 (ОК).
If-Range в RFC2616
Неопределенные результаты
Наличие следующей комбинации заголовков приводит к неопределенному результату:
- 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)