MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Заголовок HTTP-запроса If-Match делает запрос условным. Для методов GET и HEAD сервер отправляет запрошенный ресурс только в том случае, если он соответствует одному из перечисленных ETags. Для PUT и других небезопасных методов он будет загружать только ресурс в этом случае.

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

Существует два распространенных варианта использования:

  • Для методов GET и HEAD, используемых в сочетании с Range, он может гарантировать, что запрашиваемые новые диапазоны с того же ресурса, что и предыдущий. Если он не соответствует, то возвращается ответ 416 (Range Not Satisfiable).
  • Для других методов и, в частности, для PUT, If-Match может использоваться для предотвращения проблемы с потерянным обновлением. Он может проверить, не изменит ли изменение ресурса, которое пользователь хочет загрузить, другое изменение, которое было выполнено с момента извлечения исходного ресурса. Если запрос не может быть выполнен, возвращается ответ  412 (Precondition Failed).
Header type Request header
Forbidden header name no

Синтаксис

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

Директивы

<etag_value>
Теги объектов, однозначно представляющие запрошенные ресурсы. Они представляют собой строку символов ASCII, помещенных между двойными кавычками (например, "675af34563dc-tr34") и могут быть префиксами W/, чтобы указать, что следует использовать слабый алгоритм сравнения.
*
Звездочка представляет собой специальное значение, представляющее любой ресурс.

Примеры

If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"

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

If-Match: *

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

Спецификвция Название
RFC 7232, секция 3.1: If-Match Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests

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

No compatibility data found. Please contribute data for "http/headers/if-match" to the MDN compatibility data repository.

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: AlexeyVasilievE
 Обновлялась последний раз: AlexeyVasilievE,