HTTP 404

エラーメッセージ

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

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

概要 編集

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

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

ステータスコードの数字にはたいてい英語のテキスト[2]が加えられる。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などが発表している[3]

関連項目 編集

脚注 編集

  1. ^ 404 RESFARCH LAR”. 1999年10月3日時点のオリジナルよりアーカイブ。2011年4月23日閲覧。
  2. ^ RFC 2616の6.1.1節にしたがえば、このテキストは空でもよい。制御文字以外の文字と水平タブと半角スペースを含むことができるとする文字の規定はあるが、言語の規定はない。
  3. ^ Sic Transit Gloria Telae: Towards an Understanding of the Web’s Decay”. 2005年11月26日時点のオリジナルよりアーカイブ。2004年5月22日閲覧。 PDF (232 KiB), §3, submitted to the 13th World Wide Web Conference in New York City, 2004年5月17日-22日( (WWW 2004).

外部リンク 編集