HTTP 404

HTTP 404、またはエラーメッセージ Not Found（「未検出」「見つかりません」の意）は、HTTPステータスコードの一つ。クライアントがサーバに接続できたものの、クライアントの要求に該当するもの (ウェブページ等) をサーバが見つけられなかったことを示すもの。また、要求に応えられない理由をごまかすためにも使われる。

ウェブブラウザが表示する「サーバが見つかりません」のようなメッセージは、サーバとの接続に失敗したことを表すもので、404とは別である。

概要 

HTTPを使って通信を行うとき、ブラウザーによるHTML文書（ウェブページ）などの要求に対して、サーバーは応答を返すように求められる。応答には、数値によるステータスコードと電子メールのようなヘッダーと本文が含まれる。ステータスコード404では、最初の「4」がクライアント側のエラー（URLのミスタイプなど）を表し、続く「04」がエラーの種類を表す。こうしたHTTPの3桁のコードは、FTPやNNTPのようなHTTP以前からあるプロトコルに似ている。

この数字はWWWが発明された欧州原子核研究機構（CERN）の404という部屋番号にちなんで付けられたという都市伝説があるが、実際にはCERNには404という部屋はない。

ステータスコードの数字にはたいてい英語のテキストが加えられる。404の場合は「Not Found」である。サーバーは通常、404の応答とともに「404 File not found」のように数字とメッセージを記述した短いページを送信する。日本語では「ファイルが見つかりません」「ページが見つかりません」のような記述になる。サーバーアプリケーションのデフォルトのメッセージを使わずに、404用のページをカスタマイズしているサーバーも多い。たとえばApache HTTP Serverでは、.htaccessファイルやhttpd.confを書き換えるとそうしたカスタマイズができる。

Internet Explorer（IE6以前）では、512バイト以下の場合は送信された404用のページを表示せずに、代わりに「親切な」エラーページを表示する。この動作は、「インターネットオプション」の「詳細設定」で「HTTPエラーメッセージを簡易表示する」のチェックを外すことで変更できる。

404は、サーバー上のページが移動されたり削除されたりしたときにも送られることがある。しかし本来、移動された場合は「301 Moved Permanently」、削除されたときは「410 Gone」を返すべきである。ただ、301や410を返すには特別な設定が必要なので、多くのウェブサイトはそうした設定をしていない。

WWWでは404の表示をよく目にするため、404は"人や物が見つからないこと"を意味する言葉になった。ユーモラスな404ページを作ることが流行ったり、いろいろな404ページを集めることだけを目的にしたサイトが作られたりしている。

ソフト404 
ウェブサイトの中には、「ファイルが見つからない」ことを示すために、成功を表すステータスコード「200 OK」とともにウェブページを送るものもある。これは「ソフト404」と呼ばれている。ソフト404の問題は、リンクが切れているかどうかを自動的に調べられないことである。ソフト404を判別する方法はBar-Yossefなどが発表している。

関連項目 
 HTTPステータスコード
 リンク切れ
 エラーメッセージ

脚注

外部リンク 
 ErrorDocument ディレクティブ - Apache 2.0の設定方法
 The Perfect 404 - 404ページの作り方（英語）
 404 Research Lab  - さまざまな404メッセージ（英語）

404
エラーメッセージ