ステータスコード
中級読み方:ステータスコード|英語: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.ok か response.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 — ステータスコードを使ってエラーを伝える仕組み