--- title: If-Match slug: Web/HTTP/Headers/If-Match tags: - HTTP - HTTP ヘッダー - Reference - リクエストヘッダー - 条件付きリクエスト translation_of: Web/HTTP/Headers/If-Match ---
HTTP の If-Match
リクエストヘッダーは、リクエストを条件付きにします。 {{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、リストされた ETag
のいずれかと一致する場合にのみ、サーバーは要求されたリソースを返します。{{HTTPMethod("PUT")}} と他の安全ではないメソッドでは、この場合のみリソースをアップロードします。
格納された {{HTTPHeader("ETag")}} との比較では、強い比較アルゴリズムを使用、つまり二つのファイルがバイト単位で同一である場合のみ同一とみなします。列挙された ETag
に W/
接頭辞がついている場合は弱いエンティティタグであることを示し、この比較アルゴリズムでの比較は行われません。
一般的な使用例は二つあります。
If-Match
を使用して更新プログラムが失われる問題を防ぐことができます。ユーザーがアップロードしたいリソースの変更が、元のリソースがフェッチされた後に行われた別の変更を上書きしないかどうかを確認できます。リクエストを満たすことができない場合、 {{HTTPStatus("412")}} (Precondition Failed) レスポンスが返されます。ヘッダー種別 | {{Glossary("Request header", "リクエストヘッダー")}} |
---|---|
{{Glossary("Forbidden header name", "禁止ヘッダー名")}} | いいえ |
If-Match: <etag_value> If-Match: <etag_value>, <etag_value>, …
"675af34563dc-tr34"
など) です。これらのタグは「弱い」こと、つまり、意味的にはリソースを表現しているが、バイト単位の一致を示していないことを示すために、 W/
という接頭辞を付けることができます。しかし、 If-Match
ヘッダーでは、弱いエンティティタグは一致することはありません。*
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d" If-Match: "67ab43", "54ed21", "7892dd" If-Match: *
仕様書 | 題名 |
---|---|
{{RFC("7232", "If-Match", "3.1")}} | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
{{Compat("http.headers.If-Match")}}
Range Not Satisfiable
Precondition Failed