HTTP の If-None-Match リクエストヘッダーは、リクエストを条件付きにします。 GET および HEAD メソッドの場合、指定されたものの中に要求されたリソースの ETag に一致するものがない場合のみ、サーバーはリソースを 200 ステータスで返します。その他のメソッドの場合、最終的に存在するリソースの ETag が列挙されたいずれの値とも一致しない場合にのみ処理します。

GET および HEAD メソッドの場合、条件が満たされなかったら、サーバーは HTTP ステータスコード 304 (Not Modified) を返さなければなりません。サーバー側の変更を適用するメソッドの場合、ステータスコード 412 (Precondition Failed) が使用されます。なお、 304 レスポンスを生成するサーバーは、 Cache-Control, Content-Location, Date, ETag, Expires, Vary の各ヘッダーフィールドについて、同じリクエストに対して 200 (OK) レスポンスで送信されるものを生成しなければなりません。

格納されている ETag との比較では、弱い比較アルゴリズムを使用、つまり二つのファイルがバイト単位で同一である場合だけではなく、内容が同等である場合にも同一とみなします。たとえば、フッターの生成日だけが異なる二つのページは同一と見なされます。

If-Modified-Since と一緒に使用した場合、 If-None-Match が優先されます (サーバーが対応している場合)。

一般的な使用例は二つあります。

  • GET および HEAD メソッドの場合は、関連付けられた ETag を持つキャッシュされたエンティティを更新するため。
  • 他のメソッド、特に PUT の場合、 If-None-Match* 値と共に使用され、存在するかどうか分かっていないファイルを保存する際に、以前他のアップロードが行われておらず、以前 PUT されたデータを失わないことを保証するために使用することができます。この問題は、 lost update problem の一種です。
ヘッダー種別 リクエストヘッダー
禁止ヘッダー名 いいえ

構文

If-None-Match: "<etag_value>"
If-None-Match: "<etag_value>", "<etag_value>", …
If-None-Match: *

ディレクティブ

<etag_value>
リクエストされたリソースを一意に表すエンティティタグです。二重引用符の間に置かれた ASCII 文字列 ("675af34563dc-tr34" など) であり、 W/ の接頭辞を付けると、弱い比較アルゴリズムを使用するべきであることを示すことができます (このアルゴリズムだけを使用する場合は If-None-Match では意味がありません)。
*
アスタリスクは任意のリソースを表す特殊な値です。通常 PUT を使用するリソースのアップロードの場合、その識別子を持つ別なリソースがすでにアップロードされていることをする場合にのみ有用です。

If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"

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

If-None-Match: *

仕様書

仕様書 題名
RFC 7232, セクション 3.2: If-None-Match Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応
実験的非推奨非標準
Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 ありIE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, silverskyvicto
最終更新者: mfuji09,