読み方 : よんいちにエラー

412エラー【HTTP 412 Precondition Failed】

概要

412エラーとは、WebサーバWebブラウザなどのクライアントに通知するエラーメッセージの一つで、クライアントリクエストで指定された条件が満たされていないため処理が実行できなかったことを表すもの。編集衝突などが生じた場合に用いられる。

HTTPステータスコードとは

WebサーバWebクライアントの間では「HTTP」(Hypertext Transfer Protocol)という通信規約プロトコル)でデータ伝送を行っている。クライアントからの要求(リクエスト)に対してサーバは応答(レスポンス)を返すが、その際に現在の状態を示す「HTTPステータスコード」を通知する。

ステータスコードは3桁の番号と簡易なメッセージで表される。番号の最上位桁は分類、下2桁は識別番号である。100番台は「情報」(Informational)、200番台は「成功」(Success)、300番台は「転送」(Redirection)、400番台は「クライアントエラー」(Client Error)、500番台は「サーバエラー」(Server Error)を表している。

412 Precondition Failedとは

412番はクライアントに起因するエラーの一つで、メッセージは “Precondition Failed” (前提条件が満たされていない)である。クライアントPUTメソッドPOSTメソッドなどで資源を書き換えようした際に、他のクライアントによってすでに上書きされていることが分かった場合などに返される。

Webアプリケーションサーバ上のコンテンツを編集、書き換えできるようになっている場合、クライアントはコンテンツのバージョンを表す「ETag」などを用いて、サーバに前回自らが取得したときから変更が行われていないか問い合わせることができる。

クライアントからのコンテンツ上書きリクエスト中でIf-Unmodified-SinceヘッダIf-None-Matchヘッダによる変更確認が行われた場合に、他のクライアントが先に上書きしてしまってETagが一致しなくなっている場合に412エラーが送信される。別のクライアントによる変更を上書きして消してしまう編集競合を防ぐことができる。

HTTPステータスコード一覧

*1 302はHTTP/1.0では「Moved Temporarily」だった。
*2 413はHTTP/1.1では「Request Entity Too Long」、RFC 7231では「Payload Too Long」だった。
*3 414はHTTP/1.1では「Request-URI Too Long」だった。
*4 416はHTTP/1.1では「Requested Range Not Satisfiable」だった。
*5 418は1998年エイプリルフールのジョークRFC 2324で「I'm a teapot」として定義されていた。

他の用語辞典による「412エラー」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。