Spec-Zone.ru › HTTP

Если-Соответствие

Если-Соответствие

Заголовок HTTP-запроса If-Match делает запрос условным.

Сервер вернёт запрошенные ресурсы только для методов GET и HEAD, или загрузит ресурс для методов PUT и других методов, не являющихся безопасными, если ресурс соответствует одному из перечисленных значений ETag. Если условие не соответствует, возвращается ответ 412 (Ошибка условия).

Сравнение сохранённого ETag использует алгоритм сильного сравнения, означающий, что два файла считаются идентичными только байт за байтом. Если перечисленный ETag имеет префикс W/, указывающий на слабый тег сущности, этот алгоритм сравнения никогда не будет с ним совпадать.

Есть два распространённых случая использования:

  • Для методов GET и HEAD, используемых в сочетании с заголовком Range, можно гарантировать, что новые запрошенные диапазоны получены из того же ресурса, что и предыдущий.
  • Для других методов, и особенно для PUT, If-Match можно использовать для предотвращения проблемы «потерянного обновления». Он может проверить, не перекроет ли изменение ресурса, которое пользователь хочет загрузить, другое изменение, которое было выполнено с момента извлечения исходного ресурса.
Тип заголовка Заголовок запроса
Запрещённое имя заголовка нет

Синтаксис

If-Match: <etag_value>
If-Match: <etag_value>, <etag_value>, …

Директивы

<etag_value>

Теги сущности, уникально представляющие запрошенные ресурсы. Это строка ASCII-символов, заключённая в двойные кавычки (например, "675af34563dc-tr34"). Они могут быть префиксом W/ для обозначения «слабых», то есть представляющих ресурс семантически, но не байт за байтом. Однако в заголовке If-Match слабые теги сущностей никогда не будут совпадать.

*

Звёздочка — специальное значение, представляющее любой ресурс. Обратите внимание, что это должно соответствовать false, если исходный сервер не имеет текущего представления для целевого ресурса.

Примеры

If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"

If-Match: "67ab43", "54ed21", "7892dd"

If-Match: *

Спецификации

Спецификация
Семантика HTTP
# field.if-match

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet
If-Match
Да
12
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да

См. также

  • ETag
  • If-Unmodified-Since
  • If-Modified-Since
  • If-None-Match
  • 412 Precondition Failed
  • 416 Range Not Satisfiable

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API