HTTPステータスコードエクスプローラー — 無料オンラインツール
すべてのHTTPステータスコードの完全なリファレンス。検索、カテゴリでフィルタリング、すぐに使えるコードスニペットを取得。
HTTPステータスコードとは?
HTTPステータスコードは、HTTPリクエストに対するレスポンスとしてサーバーが返す3桁の数字です。リクエストが成功したか、さらなるアクションが必要か、エラーが発生したかをクライアントに伝えます。ステータスコードは最初の桁に基づいて5つのクラスに分類されます。
HTTPステータスコードのカテゴリ
- 1xx(情報): リクエストが受信され、処理が続行中です。
- 2xx(成功): リクエストが正常に受信、理解、処理されました。
- 3xx(リダイレクション): リクエストを完了するにはクライアント側でさらなるアクションが必要です。
- 4xx(クライアントエラー): リクエストに不正な構文が含まれているか、処理できません。クライアント側のエラーです。
- 5xx(サーバーエラー): サーバーが有効なリクエストの処理に失敗しました。サーバー側のエラーです。
よく使われるHTTPステータスコード
- 200 OK: GET、PUT、PATCH、DELETEリクエストの標準的な成功レスポンス
- 201 Created: リソースが正常に作成された場合、通常POSTリクエストで使用
- 301 Moved Permanently: URLが恒久的に変更された場合 — SEOフレンドリーなリダイレクトに使用
- 400 Bad Request: 無効な構文のためサーバーがリクエストを処理できない
- 401 Unauthorized: 認証が必要だが失敗したか提供されていない
- 403 Forbidden: クライアントにこのリソースへのアクセス権がない
- 404 Not Found: リクエストされたリソースがサーバー上に見つからない
- 429 Too Many Requests: レート制限超過
- 500 Internal Server Error: 予期しないサーバー側のエラー
API設計におけるHTTPステータスコード:ベストプラクティス
適切なHTTPステータスコードの選択は、API設計における最も重要な決定の一つです。一貫した正確なステータスコードはAPIを予測可能にし、クライアント側のエラー処理を改善し、APIと統合する開発者のデバッグ時間を短縮します。
API開発者のためのステータスコード選択ガイド
- 200 vs 201 vs 204: 読み取りと更新の成功には200 OKを返します。新しいリソースが作成された場合は201 Createdを使用します(リソースを指すLocationヘッダー付き)。ボディを返さない成功した削除や更新には204 No Contentを使用します。
- 400 vs 422: 不正なリクエスト(無効なJSON、必須フィールドの欠落)には400 Bad Requestを使用します。リクエストは正しい形式だが意味的に無効な場合(メール形式の誤り、過去の日付)は422 Unprocessable Entityを使用します。
- 401 vs 403: 401 Unauthorizedは「認証されていない」— クライアントは資格情報を提供する必要があります。403 Forbiddenは「認証済みだが権限がない」— 有効な資格情報だが、このアクションの権限がないことを意味します。
- 404 vs 410: リソースが存在しないか知られていない場合は404 Not Foundを使用します。リソースが以前存在していたが永久に削除された場合は410 Goneを使用します — 検索エンジンにURLのインデックス解除を伝えます。
- 429 Too Many Requests: レート制限APIに不可欠です。クライアントにリトライまでの待機時間を伝えるRetry-Afterヘッダーを常に含めてください。
よくあるAPIステータスコードの間違い
- すべてに200を使用: 一部のAPIはレスポンスボディにエラーを含む200 OKを返します。これはクライアントに標準的なHTTPエラー処理を使用する代わりに、ボディを解析してエラーを検出することを強制します。常に適切な4xx/5xxコードを使用してください。
- クライアントエラーに500を返す: 500 Internal Server Errorはサーバーのバグを意味します。クライアントが不正なデータを送信した場合は4xxを返してください。サーバーがクラッシュした場合は5xxを返してください。
- 304 Not Modifiedの無視: キャッシュ可能なリソースについては、ETagまたはLast-Modifiedヘッダーで条件付きリクエストをサポートし、コンテンツが変更されていない場合は304を返してください。帯域幅を節約し、体感パフォーマンスを向上させます。
HTTPステータスコードに関するよくある質問
HTTP 401と403の違いは何ですか?
HTTP 401 Unauthorizedは認証が必要だが不足しているか無効であることを意味します — ユーザーがログインしていないか期限切れのトークンを提供しています。HTTP 403 Forbiddenはユーザーが認証済みだがリソースへのアクセス権がないことを意味します。つまり、401は「あなたは誰ですか?」、403は「あなたが誰かは分かっていますが、このリソースにはアクセスできません」です。401には常にWWW-Authenticateヘッダーを送信してクライアントに認証方法を伝えてください。
201 Createdと200 OKの使い分けは?
POSTリクエストで新しいリソースが正常に作成された場合は201 Createdを返します。新しく作成されたリソースのURLを指すLocationレスポンスヘッダーを含めてください。新しいリソースを作成しないGET、PUT、PATCHリクエストの成功時には200 OKを返します。レスポンスボディが空のDELETE操作の成功時には204 No Contentを返します。正しいコードの使用は、APIクライアントがレスポンスを適切に処理するのに役立ちます。
HTTP 422 Unprocessable Entityとは?
HTTP 422はサーバーがリクエストのコンテンツタイプを理解し構文は有効だが、セマンティックな指示を処理できないことを意味します。REST APIでリクエストボディのバリデーションが失敗した場合に使用されます — 必須フィールドが欠落している、値が範囲外、日付フォーマットが無効など。不正な構文を示す400 Bad Requestよりも具体的です。クライアントがリクエストを修正できるよう、レスポンスボディにバリデーションエラーを返してください。
500と503ステータスコードの違いは?
HTTP 500 Internal Server Errorは、予期しない問題が発生したことを示す汎用的なサーバー側エラーです — バグ、未処理の例外、設定ミスなど。HTTP 503 Service Unavailableはサーバーが意図的にリクエストを処理できない状態で、通常メンテナンスまたは過負荷が原因です。503では、クライアントに再試行時期を伝えるRetry-Afterヘッダーを含めてください。
関連する開発者ツール
- CORSエラーデバッガー — Express、Nginx、ApacheのAccess-Control-Allow-Originエラーをデバッグ
- JWTデコーダー&インスペクター — JWTトークンのヘッダー、ペイロード、クレーム、有効期限を検査
- Docker Composeジェネレーター — サービスとボリューム付きのdocker-compose.ymlを生成
- AIトークンカウンター — GPT-4o、Claude、GeminiのトークンをカウントしてAPIコストを見積もり
- すべての無料開発者ツールを見る