HTTP ステータスコード

2025.12.08

公式ドキュメント

概要

HTTP ステータスコードは、リクエストに対するサーバーの結果を 3 桁の数字で表します。このチートシートでは、Web 開発と API 設計でよく使うコードを、原因調査やレスポンス設計の判断に使える形で整理します。

最初に覚える最小セット

コードまず覚える用途
200取得・更新が成功した
201新しいリソースを作成した
204成功したが返す本文がない
301 / 302恒久 / 一時リダイレクト
400リクエスト形式が不正
401 / 403未認証 / 権限不足
404リソースが存在しない
409状態の競合
429レートリミット
500 / 502 / 503 / 504サーバーまたは上流の問題

4xx は利用者やクライアント側で直せる可能性が高く、5xx はサーバー側の調査が必要です。障害調査では、ステータスコードだけでなくレスポンス本文、レスポンスヘッダー、サーバーログを合わせて確認します。

1xx 情報レスポンス

コード名称説明
100Continueリクエスト継続可能
101Switching Protocolsプロトコル切り替え
102Processing処理中(WebDAV)
103Early Hints先行ヒント

2xx 成功レスポンス

コード名称説明
200OKリクエスト成功
201Createdリソース作成成功
202Acceptedリクエスト受理(処理未完了)
203Non-Authoritative Information非公式情報
204No Content成功(レスポンスボディなし)
205Reset Contentコンテンツリセット
206Partial Content部分的コンテンツ
207Multi-Status複数ステータス(WebDAV)

ポイント: REST APIでは200(GET/PUT成功)、201(POST作成成功)、204(DELETE成功)を使い分けます。全て200で返すのは避けましょう。

3xx リダイレクト

コード名称説明
300Multiple Choices複数の選択肢
301Moved Permanently恒久的リダイレクト
302Found一時的リダイレクト
303See Other他を参照
304Not Modified未変更(キャッシュ利用可)
307Temporary Redirect一時的リダイレクト(メソッド維持)
308Permanent Redirect恒久的リダイレクト(メソッド維持)

注意: 301(恒久的)と302(一時的)を混同しないように。SEO目的のURL変更には301、ログイン後リダイレクトには302を使います。307/308はHTTPメソッドを維持する点が異なります。

4xx クライアントエラー

コード名称説明
400Bad Request不正なリクエスト
401Unauthorized認証が必要
402Payment Required支払いが必要(将来用)
403Forbiddenアクセス禁止
404Not Foundリソースが見つからない
405Method Not Allowed許可されていないメソッド
406Not Acceptable受理不可
407Proxy Authentication Requiredプロキシ認証が必要
408Request Timeoutリクエストタイムアウト
409Conflict競合
410Gone永久に削除済み
411Length RequiredContent-Lengthが必要
412Precondition Failed前提条件エラー
413Payload Too Largeペイロードが大きすぎる
414URI Too LongURIが長すぎる
415Unsupported Media Typeサポートされていないメディアタイプ
416Range Not Satisfiable範囲指定エラー
417Expectation FailedExpectヘッダーエラー
418I’m a teapotティーポット(ジョーク)
422Unprocessable Entity処理できないエンティティ
423Lockedロック中(WebDAV)
429Too Many Requestsリクエスト過多
451Unavailable For Legal Reasons法的理由で利用不可

実践メモ: 401(Unauthorized)は「認証されていない」、403(Forbidden)は「認証済みだが権限がない」という意味です。名前に惑わされないようにしましょう。

注意: 429(Too Many Requests)が返ってきたらレートリミットに達しています。Retry-Afterヘッダの値を確認してリトライ間隔を調整しましょう。

5xx サーバーエラー

コード名称説明
500Internal Server Errorサーバー内部エラー
501Not Implemented未実装
502Bad Gateway不正なゲートウェイ
503Service Unavailableサービス利用不可
504Gateway Timeoutゲートウェイタイムアウト
505HTTP Version Not SupportedHTTPバージョン未サポート
507Insufficient Storageストレージ不足(WebDAV)
508Loop Detectedループ検出(WebDAV)
510Not Extended拡張が必要
511Network Authentication Requiredネットワーク認証が必要

ポイント: 502(Bad Gateway)と504(Gateway Timeout)はリバースプロキシ構成で頻出。バックエンドサーバーの応答を確認しましょう。

実践メモ: ブラウザのDevToolsのNetworkタブでステータスコードを確認できます。304(Not Modified)が多い場合はキャッシュが効いている証拠です。

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

コード用途
200GET成功、PUT/PATCH更新成功
201POST作成成功
204DELETE成功
301SEO対策のURL変更
302ログイン後のリダイレクト
400バリデーションエラー
401ログインが必要
403権限不足
404ページが存在しない
500サーバー側の予期せぬエラー

まとめ

HTTP ステータスコードは、API の利用者に「何が起きたか」と「次に何をすべきか」を伝えるための約束です。成功は 200 / 201 / 204、認証認可は 401 / 403、存在しないリソースは 404、競合は 409、制限超過は 429 という基本を押さえます。

独自の意味をステータスコードに持たせすぎると、クライアント実装や監視が複雑になります。迷った場合は RFC と MDN の定義を確認してください。

参考リソース

← 一覧に戻る
PR
PR
PR
PR