If-Match
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Ðаголовок 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 request header | 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 |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
ETagIf-Unmodified-SinceIf-Modified-SinceIf-None-Match416Range Not Satisfiable412Precondition Failed