LESSON 30分

ステータスコードを読み解こう

ストーリー

「先輩、よく"404エラー"って聞くんですが、あれは何なんですか?」

「HTTPのステータスコードだよ。サーバーが"このページは見つかりません"って答えているんだ」

「数字にちゃんと意味があるんですね」

「そう。ステータスコードが読めると、エラーの原因がすぐに分かるようになるよ」


ステータスコードとは

HTTPレスポンスに含まれる 3桁の数字 で、リクエストの結果を表します。

HTTP/1.1 200 OK
         │    │
         │    └── ステータスメッセージ
         └────── ステータスコード

ステータスコードの分類

最初の1桁で大まかな意味が決まります。

範囲分類意味
1xx情報リクエストを受け取った(処理中)
2xx成功リクエストが正常に処理された
3xxリダイレクト別の場所に移動が必要
4xxクライアントエラーリクエストに問題がある
5xxサーバーエラーサーバー側に問題がある

覚え方

2xx = 成功(にっこり)  → OK!
3xx = 移動(さんぽ)    → あっちに行って
4xx = クライアントの間違い(しまった) → あなたのリクエストがおかしい
5xx = サーバーの問題(ごめん)         → こちらの問題です

重要なステータスコード

2xx 系(成功)

コードメッセージ意味
200OKリクエスト成功。データを返す
201Createdリソースが新しく作成された
204No Content成功したがレスポンスボディなし
GET /users → 200 OK(ユーザー一覧を返す)
POST /users → 201 Created(新しいユーザーが作成された)
DELETE /users/1 → 204 No Content(削除成功、返すデータなし)

3xx 系(リダイレクト)

コードメッセージ意味
301Moved Permanently恒久的に移動した
302Found一時的に移動した
304Not Modified変更なし(キャッシュを使ってOK)
http://example.com → 301 → https://example.com
(HTTPからHTTPSへの自動転送)

4xx 系(クライアントエラー)

コードメッセージ意味よくある原因
400Bad Requestリクエストが不正入力データの形式エラー
401Unauthorized認証が必要ログインしていない
403Forbiddenアクセス権がない権限が足りない
404Not Foundリソースが見つからないURLの間違い、ページが存在しない
405Method Not Allowedメソッドが許可されていないGETのみのURLにPOSTを送った
429Too Many Requestsリクエストが多すぎるAPI の制限に達した
GET /存在しないページ → 404 Not Found
POST /users(未ログイン)→ 401 Unauthorized
DELETE /admin/data(権限なし)→ 403 Forbidden

5xx 系(サーバーエラー)

コードメッセージ意味よくある原因
500Internal Server Errorサーバー内部エラープログラムのバグ
502Bad Gateway中間サーバーのエラーバックエンドサーバーが応答しない
503Service Unavailableサービス利用不可メンテナンス中、過負荷
504Gateway Timeoutタイムアウトバックエンドサーバーが応答しない
サーバーのプログラムにバグ → 500 Internal Server Error
サーバーがメンテナンス中 → 503 Service Unavailable

4xx と 5xx の違い

エラーの原因がどちら側にあるかで分かれます。

エラー原因対応
4xxクライアント(あなた) が間違っているURLやリクエストを修正する
5xxサーバー(相手) に問題があるサーバー管理者が対応する
「404 Not Found」→ あなたが間違ったURLにアクセスした
「500 Internal Server Error」→ サーバーのプログラムにバグがある

実務でよく遭遇するパターン

Webサイト閲覧時

200 → ページが正常に表示される
301 → http:// から https:// に自動転送
404 → 「お探しのページは見つかりませんでした」
503 → 「ただいまメンテナンス中です」

API開発時

200 → データの取得に成功
201 → データの作成に成功
400 → リクエストのJSON形式が間違っている
401 → APIキーが間違っている or 期限切れ
403 → このAPIへのアクセス権がない
429 → APIの呼び出し回数制限に達した
500 → サーバー側のバグ

まとめ

ポイント内容
2xx成功(200 OK、201 Created)
3xxリダイレクト(301 永久移動、302 一時移動)
4xxクライアントエラー(400, 401, 403, 404)
5xxサーバーエラー(500, 502, 503)
4xx vs 5xx4xxはクライアントの問題、5xxはサーバーの問題

チェックリスト

  • ステータスコードの5つの分類(1xx〜5xx)を理解した
  • 200、404、500 の意味を説明できる
  • 4xx と 5xx の違い(原因がどちら側か)を理解した
  • よく遭遇するステータスコードを知っている

次のステップへ

ステータスコードが読めるようになりましたね。

次のセクションでは、curl コマンド を使って、実際にHTTPリクエストを送ってみます。


推定読了時間: 30分