【404エラー..】HTTPステータスコード一覧|全63種の意味と語源まとめ
スポンサーリンク

HTTPステータスコードは、WebブラウザとサーバーがHTTP通信をするとき、サーバーが返す3桁の数字のコードです。「404 Not Found」は誰もが一度は見たことがあるはず。このコードは「リクエストしたページが存在しない」という意味です。

本記事では、IANAが管理する標準コードを完全に網羅し、全63種類を番台別の一覧テーブルで紹介します。エンジニアの方にはリファレンスとして、Web担当者には「なぜこのエラーが出るのか」を理解する手がかりとしてお使いください。後半では404の誕生秘話・「418 I'm a Teapot」の正体・451に込められた文学的オマージュなど、知っているとちょっと得する豆知識も紹介します。

スポンサーリンク
スポンサーリンク

HTTPステータスコード一覧(全63種)

ステータスコードは先頭の1桁の数字によって5クラスに分類されます。1xx=情報、2xx=成功、3xx=リダイレクト、4xx=クライアントエラー、5xx=サーバーエラーです。「4xxか5xxか」を確認するだけで、問題がリクエスト側にあるのかサーバー側にあるのかを即座に判断できます。

1xx:情報レスポンス(Informational)

リクエストを受け取り、処理を継続中であることを示します。通常のブラウジングでは画面に表示されず、ブラウザの開発者ツール(F12)のNetworkタブから確認できます。4種類と少なく、WebSocketへの接続切り替えを示す101がエンジニアに馴染みのあるコードです。

コード 名前 意味
100 Continue リクエストの前半を受信。処理を継続してよい
101 Switching Protocols プロトコルを切り替える(HTTP→WebSocketなど)
102 Processing リクエスト受付済み・処理中(WebDAV)
103 Early Hints プリロード用リソースヒントを先行送信する

2xx:成功(Successful)

リクエストが正常に処理されたことを示します。Webサイトが正常に表示されているとき、バックグラウンドでは200番台が返っています。200以外のコードも知っておくと、APIレスポンスの設計やデバッグがスムーズになります。

コード 名前 意味
200 OK 正常処理完了。最も一般的な成功レスポンス
201 Created リソースの新規作成に成功(POST後など)
202 Accepted リクエスト受付済み・処理は非同期で行う
203 Non-Authoritative Information プロキシ経由で変換された情報を返す
204 No Content 処理成功・返すコンテンツはなし(DELETE後など)
205 Reset Content フォームをリセットするよう指示
206 Partial Content 部分的なコンテンツを返す(動画の途中再生など)
207 Multi-Status 複数リソースのステータスを一括返却(WebDAV)
208 Already Reported 既出プロパティの重複省略(WebDAV)
226 IM Used インスタンス操作の結果を返す(RFC 3229)

3xx:リダイレクト(Redirection)

別のURLへの転送を示します。SEOに直結するクラスで、適切なコードを選ばないと検索エンジンの評価に影響します。301(恒久転送)はSEO評価を引き継ぎ、302(一時転送)は引き継ぎません。307・308はそれぞれ302・301の「メソッド変更禁止版」として後から追加されたコードです(詳細は豆知識で解説)。

コード 名前 意味
300 Multiple Choices 複数の候補あり。自動選択はなし
301 Moved Permanently 恒久的なURL転送(SEO評価も引き継ぐ)
302 Found 一時的な転送(歴史的に挙動が不安定)
303 See Other 処理後に別URLをGETで参照させる
304 Not Modified キャッシュが有効。再ダウンロード不要
305 Use Proxy 指定プロキシを使うよう指示(廃止予定)
306 Switch Proxy 旧仕様。現在は未使用(番号のみ保留)
307 Temporary Redirect 302の厳密版。HTTPメソッドを変更しない
308 Permanent Redirect 301の厳密版。HTTPメソッドを変更しない

4xx:クライアントエラー(Client Error)

リクエスト側(ブラウザ・ユーザー)に問題があることを示します。5クラスの中で最もバリエーションが多く、29種類あります。4xxが出たときはサーバー側ではなくリクエスト内容を確認するのが基本です。

コード 名前 意味
400 Bad Request リクエストの構文が不正
401 Unauthorized 認証が必要(未ログイン状態)
402 Payment Required 決済用に予約されたコード(現在ほぼ未使用)
403 Forbidden アクセス禁止(認証済みでも拒否)
404 Not Found リソースが見つからない
405 Method Not Allowed 使用したHTTPメソッドが許可されていない
406 Not Acceptable 要求した形式を提供できない
407 Proxy Authentication Required プロキシの認証が必要
408 Request Timeout リクエストがタイムアウト
409 Conflict リソースの状態が競合(重複作成など)
410 Gone リソースが恒久的に削除済み
411 Length Required Content-Lengthヘッダが必要
412 Precondition Failed 条件ヘッダの前提が不一致
413 Content Too Large リクエストボディが大きすぎる
414 URI Too Long URLが長すぎる
415 Unsupported Media Type 非対応のメディアタイプ
416 Range Not Satisfiable 範囲指定が無効
417 Expectation Failed Expectヘッダの期待に応えられない
418 I'm a Teapot 私はティーポット(エイプリルフール用ジョーク規格)
421 Misdirected Request このサーバーでは処理できないリクエスト
422 Unprocessable Content 構文は正しいが処理不能(バリデーション失敗など)
423 Locked リソースがロック中(WebDAV)
424 Failed Dependency 依存する別の処理が失敗(WebDAV)
425 Too Early リプレイ攻撃のリスクあり
426 Upgrade Required プロトコルのアップグレードが必要
428 Precondition Required 前提条件ヘッダを含めるよう要求
429 Too Many Requests リクエスト数が上限を超過(レート制限)
431 Request Header Fields Too Large リクエストヘッダが大きすぎる
451 Unavailable For Legal Reasons 法的理由によりアクセス不可

5xx:サーバーエラー(Server Error)

サーバー側の問題を示します。4xxと異なり、ユーザーには非がありません。サイト運営者・インフラ担当者が対処すべきエラーで、503(メンテナンス中)や502(上流サーバーの問題)はWebサービスの障害時によく見られます。

コード 名前 意味
500 Internal Server Error サーバー内部でエラー発生(原因が特定できない総称)
501 Not Implemented リクエストメソッドが未実装
502 Bad Gateway 上流サーバーから無効な応答
503 Service Unavailable サービス一時停止(メンテナンス・過負荷)
504 Gateway Timeout 上流サーバーからの応答タイムアウト
505 HTTP Version Not Supported 要求されたHTTPバージョンに非対応
506 Variant Also Negotiates コンテンツネゴシエーションが循環参照
507 Insufficient Storage ストレージ容量不足(WebDAV)
508 Loop Detected 無限ループを検出(WebDAV)
510 Not Extended リクエストの拡張が必要
511 Network Authentication Required ネットワーク認証が必要(公共Wi-Fiのポータル画面など)
スポンサーリンク

ステータスコードの豆知識

スポンサーリンク

「404の部屋」伝説は根拠なし

「404という番号はCERNのサーバー担当部屋(404号室)から来た」というエピソードがインターネット上に広く出回っています。しかし、CERN内に「404号室」自体が存在しないことが確認されており、根拠のない都市伝説です。番号が404になった経緯は「4xxはクライアントエラーのグループ、その中で順番に割り当てた結果」という単純な話が現在の定説とされています。

HTTPステータスコードはFTPのステータスコード(RFC 959、1985年策定)をモデルに設計されており、2xx・4xx・5xxという大まかな構造もFTPに倣っています。「深い意味のある番号ではなく、グループ分けの規則から自然に決まった番号」というのが実態です。

418 I'm a Teapot:廃止を拒否されたジョークコード

1998年4月1日、IETF(インターネット技術標準化組織)がエイプリルフールのジョークとして公開したRFC 2324の中で登場したコードです。規格名は「HTCPCP(Hyper Text Coffee Pot Control Protocol)」——コーヒーポットをHTTPで制御するための架空プロトコルで、「ティーポットにコーヒーを淹れさせようとした」ときに返すよう定義されました。

ジョーク規格ながら、2017年にIETFの仕様策定者マーク・ノッティンガムが「未使用コードを整理しよう」とNode.js・Go・Pythonなどの実装から418を削除しようとしました。これに反発した当時15歳のエンジニア、シェーン・ブランズウィックが「save418.com」を開設。SNSやRedditで「#Save418」が拡散し、削除提案は撤回されました。2022年にはRFC 9110が418を「予約済み」として正式に永久保存することを定め、このコードが正規の用途に流用されることはなくなっています。

451 Unavailable For Legal Reasons:本を燃やす温度からのオマージュ

2015年にRFC 7725として正式標準化されたコードで、番号はレイ・ブラッドベリのSF小説『華氏451度』(Fahrenheit 451、1953年)から取られています。「華氏451度(≒摂氏233度)」は紙が燃え始める温度で、小説では本を燃やして思想統制を行う管理社会が描かれています。451がWebアクセス制限に使われるのは、「検閲・焚書」というシンボルへの意識的なオマージュです。

地域制限(海外からは視聴できないコンテンツ)・著作権侵害・政府による検閲などで閲覧不可なページに適用されます。「403(理由を言わない拒否)」との違いは、「法的な制限があることを明示する」点です。

302・303・307はなぜ3種類あるのか

302「Found」は本来「一時的な転送でもHTTPメソッドを維持する」という仕様でしたが、1990年代のブラウザ実装が独自にPOSTリクエストをGETに変換し始めてしまいました。これを整理するため、仕様の改訂時に2つのコードが追加されています。

  • 303 See Other:「GETへの変換を明示的に許可する」——当時のブラウザの動作を正式な仕様として認める選択肢
  • 307 Temporary Redirect:「メソッド変更を明示的に禁止する302の正統版」——本来の302の意図を再定義した選択肢

歴史的な実装の乱れが似たコードを3種類生み出した例です。現在では、フォーム送信後のリダイレクトには303、APIのメソッドを維持したい一時転送には307の使用が推奨されています。

SEOに直結する3xxの使い分け

301と302はどちらもリダイレクトですが、SEO上の扱いが異なります。

  • 301(Moved Permanently):元URLのSEO評価(PageRankなど)を転送先に引き継ぐ。サイト移転やURL正規化に使う
  • 302(Found):SEO評価を引き継がない。A/Bテストや一時的なメンテナンスページへの転送に使う
  • 410(Gone)vs 404(Not Found):どちらも「コンテンツなし」を意味しますが、410は「恒久的に削除済み」の明示です。Googleは410に対してより早くインデックスから削除する傾向があるため、意図的に廃止したページには410を返すほうが望ましいとされています
スポンサーリンク
スポンサーリンク

まとめ

HTTPステータスコードはIANAが管理する国際標準で、全63種類が定義されています。普段目にするのは200・301・302・404・500あたりですが、418のティーポットコードや451の文学的な背景など、知るほど面白い豆知識が詰まっています。「4xxか5xxか」を確認するだけで問題の所在が即わかるので、エラー対応の最初の手がかりにしてください。

Web開発・IT系のリファレンスとして、拡張子の種類一覧120以上|読み方・用途・対応アプリを徹底まとめマルウェアの種類まとめ15選|名前の由来・仕組み・被害事例を徹底解説もあわせてご覧ください。

一緒に読まれている人気記事

スポンサーリンク

X でフォローしよう!

おすすめの記事