
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選|名前の由来・仕組み・被害事例を徹底解説もあわせてご覧ください。












