If-Match
If-Match
HTTP заголовок запиту робить запит умовним. Для GET
і HEAD (en-US) методів, сервер поверне запитаний ресурс тільки якщо співпадає обидва ETags
. Для методу PUT
чи інших небезпечних методів, виконається тільки завантаження файлу.
Порівняння коду ETag
може використовувати суворий алгоритм порівняння, мається на увазі повна перевірка байт в байт. Ця функція використовує W/
префікс на початку ETag
.
Існує два загальних випадки використання:
- Для
GET
і HEAD (en-US) методів, використовується з додатковим Range (en-US) заголовком, це гарантує що усі ranges запити надходять з того самого джерела. В іншому випадку буде повернуто статус 416 (en-US) - Для інших випадків, і частково для
PUT
,If-Match
можуть бути використані порівняння наявності файлу. В такому випадку можно дізнатись чи якісь зміни ресурсу, які користувач намагається завантажити, не змінено з того часу як вони були розташовані. Якщо запит не буде виконано, повернеться статус 412 (en-US) (Precondition Failed).
Тип заголовку | Request header |
---|---|
Forbidden header name | Ні |
Синтаксис
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: *
Стандарт
Specification | Title |
---|---|
RFC 7232, section 3.1: If-Match | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
Сумісність з оглядачами
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Дивись також
ETag
- If-Unmodified-Since (en-US)
- If-Modified-Since (en-US)
- If-None-Match (en-US)
- 416 (en-US)
Range Not Satisfiable
- 412 (en-US)
Precondition Failed