--- title: If-Match slug: Web/HTTP/Headers/If-Match tags: - Cabeçalho HTTP - Cabeçalho de requisição - HTTP - Referencia - Requisições Condicionais translation_of: Web/HTTP/Headers/If-Match ---
O cabeçalho de requisição HTTP If-Match
faz a requisição condicional. Para métodos {{HTTPMethod("GET")}} e {{HTTPMethod("HEAD")}}, o servidor irá mandar de volta o recurso requisitado somente se ele corresponde com uma das ETags
listadas. Para {{HTTPMethod("PUT")}} e outros métodos não-seguros, ele somente irá fazer o upload do recurso neste caso.
A comparação com a {{HTTPHeader("ETag")}} guardada usa o algoritmo de comparação forte, significa dois arquivos são considerados idênticos byte a byte somente. Se a ETag
listada com o prefixo W/
indicando a tag como uma entidade fraca, ele nunca irá combinar usando este algoritmo de comparação.
Existem dois casos de uso comuns:
If-Match
pode ser usado para previnir o problema de perde de atualização. Ele pode checar se a modificação de um recurso que o usuário que fazer o upload não sobrescreverá outra modificação que foi feita desde que o recurso original foi buscado. Se a requisição não puder ser completada, a resposta {{HTTPStatus("412")}} (Precondition Failed) é retornada.Tipo de cabeçalho | {{Glossary("Request header")}} |
---|---|
{{Glossary("Forbidden header name")}} | não |
If-Match: <etag_value> If-Match: <etag_value>, <etag_value>, …
"675af34563dc-tr34"
). Elas podem ser prefixadas por W/
para indicar que elas são "fracas", i.e. que elas representam o recurso semânticamente, mas não byte-por-byte. Entretanto, em um cabeçalho If-Match
, tags de entidade fraca nunca irão corresponder.*
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d" If-Match: "67ab43", "54ed21", "7892dd" If-Match: *
Especificação | Título |
---|---|
{{RFC("7232", "If-Match", "3.1")}} | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
{{Compat("http.headers.If-Match")}}
Range Not Satisfiable
Precondition Failed