DevToolBox

HTTP Status Codes List - ステータスコード一覧と意味

404500 はすぐ分かっても、422409504 となると意味が曖昧なまま使ってしまうことは多いはずです。http status codes(HTTPステータスコード)は先頭の数字でクラス分けされた 3桁の整数で、クラスごとの意味を理解すればレスポンスの性質を素早く把握できます。 この記事では1xx〜5xxのクラス別一覧表と、よく混同されるコードの違いを整理します。

HTTP status codes are three-digit numbers grouped into five classes by their first digit. This guide lists the codes you'll actually encounter, class by class, and clarifies the pairs developers most often confuse — 301 vs. 302, 401 vs. 403, and 502 vs. 503 vs. 504.

TL;DR

HTTP Status Codes

全ステータスコードをコード番号・名前で検索。各コードの意味と代表的な使用場面を即座に確認できます。ブラウザ完結・外部送信なし。

今すぐ試す →

1. クラス別の意味 / What each class means

クラス意味責任範囲
1xx Informational処理継続中の暫定応答-
2xx Successリクエストが正常に処理された-
3xx Redirection追加のアクション(別URLへの移動等)が必要-
4xx Client Errorリクエスト側に問題があるクライアント
5xx Server Errorサーバー側で処理に失敗したサーバー

2. よく使う主要コード一覧 / Common status codes by class

2xx 成功

コード名前意味
200OKリクエスト成功、標準的な成功レスポンス
201Createdリソースの新規作成に成功(POST等)
204No Content成功したがレスポンスボディなし(DELETE等)

3xx リダイレクト

コード名前意味
301Moved Permanently恒久的な移動。SEO評価が引き継がれる
302Found一時的な移動。元URLの評価は保持
304Not Modifiedキャッシュが有効。再取得不要

4xx クライアントエラー

コード名前意味
400Bad Requestリクエストの構文・内容が不正
401Unauthorized未認証。WWW-Authenticate必須
403Forbidden認証済みだが権限不足
404Not Foundリソースが存在しない
405Method Not Allowed許可されていないHTTPメソッド
409Conflictリソースの現在の状態と競合(重複作成等)
422Unprocessable Entity構文は正しいが意味的に処理不可(バリデーションエラー等)
429Too Many Requestsレート制限超過

5xx サーバーエラー

コード名前意味
500Internal Server Errorサーバー内部の未分類エラー
502Bad Gatewayプロキシがバックエンドから不正な応答を受けた
503Service Unavailable過負荷・メンテナンスで一時的に処理不可
504Gateway Timeoutプロキシがバックエンド応答をタイムアウトまで待った

3. 混同しやすいコードの違い / Commonly confused pairs

401 と 403 は「認証」と「認可」の違いで頻繁に取り違えられます。 詳しい判断基準は HTTP 401 と 403 の違い・使い分けで判断フローとRFC 9110の定義をまとめています。

502 / 503 / 504 はすべて5xxですが原因が異なります。502はバックエンドからの 応答自体が壊れている、503はサーバーが意図的にリクエストを拒否している(過負荷/メンテナンス)、 504はバックエンドからの応答を待ちきれなかった、という違いです。

301 / 302 はどちらもリダイレクトですが、恒久的か一時的かでSEO上の扱いが 変わります。URL構造を恒久的に変更するリニューアルなどでは301を使うのが定石です。

4. ステータスコードの確認方法 / How to check a status code

# curlでヘッダーだけ確認
curl -I https://example.com

# レスポンスコードのみ表示
curl -o /dev/null -s -w "%{http_code}\n" https://example.com

// JavaScript fetch
const res = await fetch("https://example.com/api");
console.log(res.status, res.ok); // res.okは200-299でtrue

5. REST API設計での使い分け / REST API design guidance

操作成功時よくある失敗時
GET(取得)200404
POST(作成)201400 / 409 / 422
PUT/PATCH(更新)200400 / 404 / 409
DELETE(削除)204404

Note that HTTP 200 doesn't always mean application-level success — GraphQL and some RPC-style APIs return 200 with errors embedded in the response body, so check both layers.

まとめ / Summary

HTTPステータスコードは先頭の数字でクラスを判断し、詳細は個別コードの定義で確認するのが 効率的な読み方です。特に401/403、301/302、502/503/504のような混同しやすい組は 使い分け基準を一度整理しておくと、実装時もレビュー時も迷いません。

Read status codes by class first (1xx-5xx), then drill into the specific code. The pairs worth memorizing are 401 (unauthenticated) vs. 403 (unauthorized), 301 (permanent) vs. 302 (temporary) redirects, and the three 5xx variants that distinguish a broken upstream response (502), a deliberately unavailable server (503), and a timeout (504).

HTTP Status Codes

全コードを検索・一覧表示。実装中に忘れがちな細かいコードもすぐに確認できます。

今すぐ試す →

関連ツール / Related tools

関連ガイド / Related guides