404 Not Found! HTTPステータスコード一覧

当サイト(fragment.database.)は2013年に開設以来、10年以上ぷらら(plala)のプライベートホームページで運用してきたのですが、ぷららのプライベートホームページが2025年3月末に廃止されることとなったため、2024年8月に独自ドメイン(レンタルサーバ)に引っ越しました。
(http://www13.plala.or.jp/bigdata/ ➡️ https://fragment-database.com/

レンタルサーバへ引っ越ししたことにより、これまでぷららのサーバ側の制約でやりたくてもできなかったhttps対応が10年越しに実現したわけですが、併せて「.htaccess」というサーバの動作を直接制御するファイルが編集可能となったことから、存在しないページにアクセスしようとした際に表示される404エラーページも自作(カスタマイズ)可能となりました。

最初は単に「Error! 404 Not Found」または「Oops! 404 Not Found」とだけ書いたシンプルなページを考えていたのですが、作るなら当サイトならではの特色を出したエラーページを作った方が良いと思い、「404 Not Found」も含む全てのエラーコードを集めた日本一情報量の多い(そして画像が全く無い...)404ページ(エラーページ)を目指して作ってみました。

が、結果的に、存在しないページにアクセスしようとした際に表示されるエラーページとして本ページ(404.html)を使用することはできませんでした。
そのあたりの顛末を別ページにまとめましたので、万が一興味がありましたらご覧下さい。
(いろいろ試行錯誤したのですが、Googleにインデックス登録されなかったため意味が無いと判断しました。)


皆さんもネットサーフィン(死語)をしていて「404 Not Found」だけでなく「403 Forbidden」とか「500 Internal Server Error」「401 Unauthorized」といった「3桁の数字+メッセージ」に何度か遭遇しイラッとしたことがあるのではないでしょうか。

「404 Not Found」の「404」の3桁の数字部分は「HTTPステータスコード」と呼ばれます。
先ほど「エラーコード」って書いたのですが、実はエラーの全く無い正常なページでもサーバは「200 OK」というコードをクライアントに返すので、エラーコードではなく「ステータスコード」と呼ぶのが正解です。

そのようなHTTPステータスコードについて、一体全部でどれだけの種類があるのかを調べて一覧表にしてみました。

HTTPステータスコードは、ドメイン名、IPアドレスといったインターネット全体のリソースを管理する組織である IANA(Internet Assigned Numbers Authority)により定義づけられており、過去からRFC(Request for Comments)と呼ばれる仕様書に収録され、順次拡充されてきました。
2024.9現在、実際に使用されているオフィシャルなHTTPステータスコードは全部で62種類です。
それぞれのステータスコードのRFCへの収録時期についても掲載しています。
同じコード番号でも収録時期により微妙に定義が異なるものもあります。
またRFCの原文は全部英語で定義されていますので、わかりやすいよう日本語訳(意訳)も追記しています。

404 Not Found! HTTPステータスコード一覧
コード定義(RFC)日本語訳(意訳)RFC
収録
1xx Informational(情報カテゴリ)
100Continue継続中1997.1
101Switching Protocolsプロトコル切替1997.1
102Processing処理中1999.2
103Early Hints事前のヒント2017.12
2xx Successful(成功カテゴリ)
200OKOK(成功)1996.5
201Created作成されました1996.5
202Accepted受理されました1996.5
203Non-Authoritative Information信頼できない情報1997.1
204No Content内容なし1996.5
205Reset Content内容のリセット1997.1
206Partial Content部分的な内容1997.1
207Multi-Status複数のステータス1999.2
208Already Reported報告済み2010.4
226IM Usedインスタントメッセージ使用2002.1
3xx Redirection(転送カテゴリ)
300Multiple Choices複数の選択肢1997.1
301Moved Permanently恒久的に移動しました1996.5
302Found発見しました1996.5
303See Other他を参照して下さい1997.1
304Not Modified未更新1996.5
305Use Proxyプロキシを使用して下さい1997.1
306(Unused)Switch Proxy【廃止】プロキシ切り替え1999.6
307Temporary Redirect一時的なリダイレクト1999.6
308Permanent Redirect恒久的なリダイレクト2012.3
4xx Client Error(クライアントエラーカテゴリ)
400Bad Request間違ったリクエスト1996.5
401Unauthorized認証に失敗(アクセス権無し)1996.5
402Payment Required支払いが必要です1997.1
403Forbidden禁止されています1996.5
404Not Found見つかりません1996.5
405Method Not Allowed許可されていない方法です1997.1
406Not Acceptable受理できません1997.1
407Proxy Authentication Requiredプロキシ認証が必要です1997.1
408Request Timeoutリクエストがタイムアウト1997.1
409Conflict競合しています1997.1
410Gone消滅しました1997.1
411Length Required長さが必要です1997.1
412Precondition Failed前提条件が間違っています1997.1
413Request Entity Too Largeリクエストエンティティが大きすぎます1997.1
Payload Too Largeペイロードが大きすぎます2014.6
Content Too Large内容が大きすぎます2022.6
414Request-URI Too LongリクエストURIが長すぎます1997.1
URI Too LongURIが長すぎます2014.6
415Unsupported Media Typeサポートしていないメディアタイプ1997.1
416Range Not Satisfiableレンジが満足できません1999.6
417Expectation Failed期待通りに処理できません1999.6
418(Unused) I’m a tea pot【未使用】ティーポットです
(コーヒーサーバーではありません)
1998.4.1
420(Unused) Enhance Your Calm【未使用】落ち着いて(焦っちゃダメ)未収録
421Misdirected Request誤ったリクエストです2015.5
422Unprocessable Entity処理できないエンティティです1999.2
Unprocessable Content処理できない内容です2022.6
423Lockedロックされています1999.2
424Failed Dependency依存関係がまちがっています1999.2
425Too Early(リクエストが)早すぎます2018.9
426Upgrade Requiredアップグレードが必要です2000.5
427(Unassigned)【未割り当て】
428Precondition Required事前条件が必要です2012.4
429Too Many Requestsリクエストが多すぎます2012.4
430(Unassigned)【未割り当て】
431Request Header Fields Too Largeリクエストヘッダーフィールドが大きすぎます2012.4
451Unavailable For Legal Reasons法的理由により利用不可2016.2
5xx Server Error(サーバーエラーカテゴリ)
500Internal Server Errorサーバ内部エラー1996.5
501Not Implemented実装されていません1996.5
502Bad Gatewayゲートウェイに問題あり1996.5
503Service Unavailableサービス利用不可1996.5
504Gateway Timeoutゲートウェイがタイムアウト1997.1
505HTTP Version Not SupportedサポートしていないHTTPバージョン1997.1
506Variant Also Negotiatesコンテンツネゴシエーションが失敗しました1998.3
507Insufficient Storage容量不足1999.2
508Loop Detectedループを検出2010.4
509(Unassigned)【未割り当て】
510Not Extended拡張できません2000.2
511Network Authentication Requiredネットワーク認証が必要です2012.4
コード定義(RFC)日本語訳(意訳)RFC
収録

【激レアなステータスコード】

一度も見たことが無いステータスコードも多かったのでは無いでしょうか。
上の表には通常のwebブラウザで表示されるステータスコードだけでなく、Webサーバーを活用してファイル共有・編集ができる「WebDAV」という技術において用いられるステータスコードも含まれています。

通常のブラウザでも表示される可能性があり、かつ激レアなHTTPステータスコードは下記の2つです。

①「418 I’m a tea pot」
もともと1998年4月1日に「HTCPCP(Hyper Text Coffee Pot Control Protocol:ハイパーテキストコーヒーポット制御プロトコル)」のためのステータスコードとして提案されたエイプリルフールネタですが、実際にサーバに実装する人が続出したため、オフィシャルの418番を欠番にせざるを得なかった、という曰く付きのコードです。
今から25年以上前の話ですが、今もどこかに実装されているサーバがあるという噂です。
Googleにはイースターエッグとして実装されており、アクセスするとしっかり「418」のレスポンスが返ってきます。

②「451 Unavailable For Legal Reasons」
コード番号の「451」はレイ・ブラッドベリのSF小説『華氏451度(Fahrenheit 451)』に由来しています。
漫画以外の本が禁止され、見つかると燃やされてしまうというディストピアを描いた小説です。
著作権やプライバシーを侵害している違法なコンテンツなど、法的な理由で利用できない場合にこのステータスコードが用いられるとのことですが、そんな情報を格納しているサーバがわざわざこのコードをクライアント側に返すとも考えられず、ましてや政府による検閲の際も、検閲していること自体が明らかになるこんなコードを使うとも思えないです。
もしこのコードをネット上で見かけるようになれば、ディストピアな未来があなたのすぐ近くまで来ているのかもしれません。。。