すべて 2xx 成功 3xx リダイレクト 4xx クライアントエラー 5xx サーバーエラー

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: 予期しないサーバー側のエラー

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ヘッダーを含めてください。

関連する開発者ツール