Web

ステータスコード

中級

読み方:ステータスコード|英語:Status Code

サーバーからの応答状態を示す3桁の数字で、200は成功、404は未検出、500はサーバーエラーだよ。

やさしい説明

ステータスコードは、サーバーが「リクエストの結果」を3桁の数字で伝えるものです。200番台は成功、400番台はクライアントのミス、500番台はサーバーのエラーです。

レストランに例えると、200は「ご注文の品です」、404は「そのメニューはありません」、500は「厨房で火事です」のようなものです。

開発者ツールの Network タブで確認できます。エラーの原因を特定するのに役立ちます。

番台別の意味

  • 1xx(情報) — 処理中・継続中を示す。あまり意識しない
  • 2xx(成功) — リクエストが正常に処理された
  • 3xx(リダイレクト) — 別のURLに移動が必要
  • 4xx(クライアントエラー) — リクエスト側の問題(URL間違い・認証エラーなど)
  • 5xx(サーバーエラー) — サーバー側の問題。ユーザーは待つかリトライするしかない

よく使うステータスコード一覧

# 2xx: 成功系
200 OK 通常の成功(GET・PUT)
201 Created 作成成功(POST)
204 No Content 成功だがレスポンス本文なし(DELETE)

# 3xx: リダイレクト系
301 Moved Permanently URLが恒久的に変わった(SEOでよく使う)
302 Found URLが一時的に変わった
304 Not Modified キャッシュが有効(再取得不要)

# 4xx: クライアントエラー系
400 Bad Request リクエストの形式が不正
401 Unauthorized 認証が必要(ログインしていない)
403 Forbidden 認証済みだがアクセス権限がない
404 Not Found リソースが存在しない
422 Unprocessable バリデーションエラー

# 5xx: サーバーエラー系
500 Internal Server Error サーバー内部のエラー
502 Bad Gateway 上位サーバーからの不正な応答
503 Service Unavailable サーバーが一時的に利用不可

JavaScriptでのステータスコード確認

const response = await fetch("https://api.example.com/users/1");

// statusプロパティで数値を確認
console.log(response.status); // 200, 404, 500 など

// okプロパティ: 200〜299のときtrue
if (!response.ok) {
  throw new Error(`エラー: ${response.status}`);
}

const data = await response.json();

fetch は404や500でも reject しません。必ず response.okresponse.status を確認してエラー処理を書きましょう。

いつ使う?

  • APIのレスポンスを処理するとき(エラーハンドリング)
  • 開発者ツールのNetworkタブでエラーの原因を調べるとき
  • APIを設計・実装するとき(適切なコードを返す)
  • ページのリダイレクト設定をするとき(301 vs 302)

間違いやすいポイント

❌ エラーなのに200を返す

APIでエラーが起きたのに200(成功)を返すと、フロントエンドがエラーを検知できません。バリデーションエラーは422、認証切れは401など、適切なコードを返しましょう。

❌ 401と403を混同する

401は「誰だかわからない(未ログイン)」、403は「誰かはわかっているが権限がない(アクセス拒否)」です。意味が異なります。

よくある疑問

Q: よく見るステータスコードは?

A: 200(成功)、201(作成成功)、301(リダイレクト)、400(不正リクエスト)、401(認証必要)、403(禁止)、404(未検出)、500(サーバーエラー)が頻出です。

Q: 4xxと5xxの違いは?

A: 4xx=クライアント側のエラー(URLミス、認証切れ等)、5xx=サーバー側のエラー(バグ、サーバーダウン等)です。

Q: ステータスコードを確認するには?

A: 開発者ツールのNetworkタブでリクエストごとのステータスコードが確認できます。赤色表示はエラーです。

関連用語

  • リクエスト/レスポンス — ステータスコードはレスポンスに含まれる
  • HTTP — ステータスコードが定義されている通信規格
  • API — ステータスコードを使ってエラーを伝える仕組み

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A