Webサービスを開発・運用していると、HTTPステータスコードの意味を素早く確認したい場面が頻繁に訪れます。
HTTPステータスコード一覧を体系的に把握しておくことで、エラーの原因特定やAPI設計の精度を大幅に向上させることができるでしょう。
本記事では、HTTPステータスコードの一覧と各番号の意味を200・300・400・500番台ごとに詳しく解説します。
ブラウザやコマンドラインでのチェック方法も合わせて紹介しますので、開発者からサーバー管理者まで幅広い方の参考になれば幸いです。
HTTPステータスコード一覧:番号別の意味と分類
それではまず、HTTPステータスコードの番号別の意味と分類について、一覧形式でわかりやすく解説していきます。
ステータスコードの先頭桁がカテゴリを示しており、1xx〜5xxまでの5つのクラスに分類されています。
1xx系:情報提供ステータスコード
1xx系のコードはサーバーがリクエストを受け取り、処理を継続中であることを示す情報提供コードです。
「100 Continue」はクライアントがリクエストを継続して送信しても問題ないことを示し、「101 Switching Protocols」はWebSocketへのプロトコル切り替えなどに使用されます。
実際のWebアプリケーション開発で1xx系コードを意識する場面は比較的少ないですが、WebSocketやHTTP/2の文脈では重要な役割を担うでしょう。
2xx系:成功ステータスコード一覧
2xx系はリクエストが正常に受け取られ、理解され、処理されたことを示す成功コード群です。
| コード | メッセージ | 主な用途 |
|---|---|---|
| 200 | OK | 標準的な成功レスポンス |
| 201 | Created | POSTによるリソース作成成功 |
| 202 | Accepted | リクエスト受付(処理は非同期) |
| 204 | No Content | 成功・レスポンスボディなし |
| 206 | Partial Content | 部分的なコンテンツの配信 |
3xx系:リダイレクトステータスコード一覧
3xx系はリクエストを完了するためにクライアントが追加のアクション(別URLへのアクセスなど)を行う必要があることを示します。
| コード | メッセージ | 主な用途 |
|---|---|---|
| 301 | Moved Permanently | URLの恒久的移転・SEOに影響あり |
| 302 | Found | 一時的なリダイレクト |
| 303 | See Other | GETメソッドで別URLを参照 |
| 304 | Not Modified | キャッシュ有効・再取得不要 |
| 307 | Temporary Redirect | メソッドを維持した一時的リダイレクト |
| 308 | Permanent Redirect | メソッドを維持した恒久的リダイレクト |
4xx系・5xx系のステータスコード一覧と意味
続いては、エラーを示す4xx系と5xx系のステータスコードの一覧と意味を確認していきます。
エラーコードを正確に理解することで、問題の原因をクライアント側かサーバー側かで切り分けることができます。
4xx系:クライアントエラーコード一覧
4xx系はクライアントのリクエストに問題がある場合に返されるエラーコードです。
| コード | メッセージ | 主な原因 |
|---|---|---|
| 400 | Bad Request | リクエスト構文の誤り |
| 401 | Unauthorized | 認証情報が必要・認証失敗 |
| 403 | Forbidden | アクセス権限なし |
| 404 | Not Found | リソースが存在しない |
| 405 | Method Not Allowed | 許可されていないHTTPメソッド |
| 408 | Request Timeout | リクエストがタイムアウト |
| 409 | Conflict | リソースの競合 |
| 410 | Gone | リソースが恒久的に削除済み |
| 422 | Unprocessable Entity | バリデーションエラー |
| 429 | Too Many Requests | レート制限超過 |
5xx系:サーバーエラーコード一覧
5xx系はサーバー側の問題によってリクエストの処理に失敗した場合に返されるエラーコードです。
| コード | メッセージ | 主な原因 |
|---|---|---|
| 500 | Internal Server Error | サーバー内部の予期しないエラー |
| 501 | Not Implemented | 未実装の機能へのリクエスト |
| 502 | Bad Gateway | ゲートウェイ・プロキシのエラー |
| 503 | Service Unavailable | サーバー過負荷・メンテナンス中 |
| 504 | Gateway Timeout | 上流サーバーのタイムアウト |
HTTPステータスコードの確認方法とチェックツール
続いては、HTTPステータスコードを実際に確認するための方法とチェックツールを見ていきます。
ブラウザ開発者ツールでの確認手順
Google ChromeでF12キーを押して開発者ツールを起動し、「Network」タブを開くとすべてのHTTPリクエストとレスポンスを確認できます。
ページをリロードするとリクエスト一覧が表示され、各行のStatusカラムにステータスコードが表示されます。
赤色で表示されたリクエストはエラーを示しており、クリックすることでレスポンスヘッダーや詳細情報を確認できるでしょう。
curlコマンドによるステータスコードの確認
ターミナルやコマンドプロンプトから「curl -I https://example.com」コマンドを実行することで、対象URLのHTTPレスポンスヘッダーとステータスコードを確認できます。
「-L」オプションを追加するとリダイレクトを自動的に辿り、最終的なレスポンスのステータスコードを取得できます。
シェルスクリプトなどでステータスコードのみを変数に格納したい場合は「curl -s -o /dev/null -w “%{http_code}” URL」の形式を使うとよいでしょう。
オンラインチェックツールの活用
ブラウザ上からURLを入力してHTTPステータスコードを確認できるオンラインツールも複数公開されています。
「canyouseeme.org」「httpstatus.io」「redirect-checker.org」などのツールは、ステータスコードの確認や複数のリダイレクト経路の可視化に役立ちます。
SEO目的でリダイレクトチェーンを確認したい場合や、外部からの疎通確認に非常に便利なツールでしょう。
まとめ
HTTPステータスコードは1xx〜5xxの5カテゴリに分類され、それぞれが通信の状態(成功・リダイレクト・エラー)を明確に示します。
200・201・204など2xx系の成功コード、301・302・304など3xx系のリダイレクトコード、400・401・403・404・422など4xx系のクライアントエラー、500・502・503など5xx系のサーバーエラーの各コードをしっかりと把握しておくことが重要です。
ブラウザの開発者ツールやcurlコマンド、オンラインチェックツールを活用して日常的にステータスコードを確認する習慣を身につけることで、Web開発・運用の効率が大きく向上するでしょう。