TrueURL
TrueURL

メニュー

412 前提条件の不成立

If-Match や If-Unmodified-Since など、リクエストヘッダーの条件が偽だったため、サーバーが変更を適用しなかったことを示します。

リーズンフレーズ
Precondition Failed
リダイレクト
いいえ
デフォルトでキャッシュ可能
いいえ

412 Precondition Failed は、リクエストヘッダーに含まれる 1 つ以上の条件が偽と評価されたことを示します。If-Match や If-Unmodified-Since が成立しなかった場合、または GET と HEAD 以外のメソッドで If-None-Match が成立しなかった場合の結果です。サーバーは、要求された操作を実行していません。

主な目的は、更新の消失を防ぐこと(楽観的並行性制御)です。クライアントはリソースをその ETag と一緒に読み取って編集し、If-Match にその ETag を指定して変更を送信します。その間に誰かがリソースを変更していれば ETag はもう一致しないので、サーバーはほかの人の変更を上書きせず、412 で応答します。また、If-None-Match: * と組み合わせて、まだ存在しない場合にだけリソースを作成する用途にも使われます。

GET と HEAD では、If-None-Match や If-Modified-Since が偽になると、412 ではなく 304 Not Modified が返されます。

レスポンス例

HTTP
HTTP/1.1 412 Precondition Failed
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "v8"
Content-Type: application/json
Content-Length: 52

{"error":"If-Match does not match the current ETag"}

SEO とリダイレクトチェック

412 が発生するのは API や WebDAV での条件付きの書き込みであり、クロールでは発生しません。クローラーによる条件付きの GET リクエストの結果は、304 か 200 です。リダイレクトチェックで 412 が表示された場合は、カスタムリクエストヘッダーとして追加した If-* ヘッダーを確認してください。

よくある原因と主な用途

  • 読み取った後でリソースが変更されていたため、編集が拒否された場合(ETag の不一致)。
  • If-None-Match: * によって、既存のファイルの上書きが防がれた場合。
  • クラウドストレージや CDN の API が、古い ETag を含む条件付きリクエストを受け取った場合。

URL リダイレクトチェッカー

無料の TrueURL リダイレクトチェッカーで、URL が返すすべてのステータスコードをホップごとに確認できます。