412 Precondition Failed

HyperText Transfer Protocol (HTTP) 412 Precondition Failed クライアントエラーレスポンスコードは、ターゲットリソースへのアクセスが拒否されたことを示します。これは、 If-Unmodified-Since または If-None-Match ヘッダーで定義された条件が満たされていない場合に、 GET もしくは HEAD 以外のメソッドの条件付きリクエストで発生します。その場合、リクエスト (通常はリソースのアップロードまたは変更) を行うことができず、このエラーレスポンスが返されます。

ステータス

412 Precondition Failed

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ETag: W/"0815"

空中衝突の防止

ETagIf-Match の各ヘッダーを活用することで、編集の空中衝突を検出することができます。

例えば、 MDN を編集しているとき、現在の Wiki の内容がハッシュ化され、レスポンスの Etag に入ります。

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

Wiki ページへの編集を保存する (データを投稿する) 際に、 POST リクエストに If-Match ヘッダーを含み、その中で新鮮さをチェックするための ETag の値を含みます。

If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"

ハッシュが一致しない場合、その間で文書が編集されたことを意味するので、 412 Precondition Failed エラーを発生させます。

仕様書

仕様書 題名
RFC 7232, セクション 4.2: 412 Precondition Failed Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests

ブラウザーの互換性

以下に示す情報は、 MDN の GitHub から取得したものです。 (https://github.com/mdn/browser-compat-data).

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
412Chrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応

関連情報