|
400
|
Bad Request
RFC 9110
|
構文、パラメータ、ヘッダー、本文が無効なため、サーバーがリクエストを処理できないことを示します。 |
無効なJSON、必須値の不足、不正なURL、異常なヘッダーでよく使われます。 |
リクエスト本文形式、Content-Type、クエリパラメータ、サーバーのバリデーションログを確認します。
関連: 422
|
|
401
|
Unauthorized
RFC 9110
|
認証が必要、または提供された認証情報が無効であることを示します。 |
ログイントークンがない、APIキーが期限切れ、Authorizationヘッダーが誤っている場合に使われます。 |
WWW-Authenticateヘッダー、トークン有効期限、認証方式、Cookieが送信されているかを確認します。
関連: 403, 407
|
|
402
|
Payment Required
RFC 9110
|
支払いが必要な状況のために予約されていますが、標準的な意味は広く確立されていません。 |
一部のAPIや決済サービスでは、支払い、クレジット、サブスクリプションの問題に非公式に使われます。 |
402の実際の意味と復旧手順は、サービス固有のAPIドキュメントで確認します。
関連: 403, 429
|
|
403
|
Forbidden
RFC 9110
|
サーバーはリクエストを理解しましたが、アクセスを許可しないことを示します。 |
権限不足、IPブロック、管理ポリシー、非公開リソースへのアクセスでよく使われます。 |
認証とは分けて、認可ポリシー、ACL、WAFルール、ファイル権限、ルーティングルールを確認します。
関連: 401, 404, 451
|
|
404
|
Not Found
RFC 9110
|
要求されたリソースが見つからない、またはサーバーが存在有無を明かしていないことを示します。 |
URLの入力ミス、削除済みページ、誤ったルート、意図的に隠されたリソースで最もよく見られます。 |
内部リンク、サイトマップ、リダイレクト、ルーティングテーブル、削除コンテンツの代替URLを確認します。
関連: 410, 403, 451
|
|
405
|
Method Not Allowed
RFC 9110
|
リソースは存在しますが、要求されたHTTPメソッドは許可されていません。 |
GET専用URLにPOSTを送った場合や、APIルートが別のメソッド向けに設定されている場合に発生します。 |
Allowヘッダー、ルーターのメソッド定義、プロキシのメソッド制限ポリシーを確認します。
関連: 404, 501
|
|
406
|
Not Acceptable
RFC 9110
|
クライアントのAcceptヘッダーに合う表現をサーバーが提供できないことを示します。 |
クライアントが未対応のメディアタイプ、言語、エンコーディングだけを要求した場合に起こります。 |
Accept、Accept-Language、Accept-Encodingヘッダーと、サーバーのコンテンツネゴシエーション設定を確認します。
関連: 415
|
|
407
|
Proxy Authentication Required
RFC 9110
|
クライアントがプロキシを利用する前に認証が必要です。 |
企業ネットワーク、セキュリティプロキシ、ゲートウェイ認証環境で見られます。 |
Proxy-Authenticate、Proxy-Authorizationヘッダーと、ネットワークプロキシ設定を確認します。
関連: 401, 305
|
|
408
|
Request Timeout
RFC 9110
|
サーバーが待機できる時間内に、クライアントから完全なリクエストを受信できなかったことを示します。 |
低速ネットワーク、大容量アップロード、keep-aliveタイムアウト、ロードバランサーのタイムアウトで発生することがあります。 |
クライアントの再試行動作、アップロードサイズ、keep-alive設定、プロキシのタイムアウト値を確認します。
関連: 504
|
|
409
|
Conflict
RFC 9110
|
リクエストがリソースの現在の状態と競合していることを示します。 |
重複作成、バージョン競合、同時編集、不正な状態遷移でよく使われます。 |
リソースバージョン、ETag、重複キー、業務上の状態遷移ルールを確認します。
関連: 412, 422
|
|
410
|
Gone
RFC 9110
|
リソースは過去に存在していましたが、恒久的に削除されたことを示します。 |
ページが削除済みであることを検索エンジンやクライアントへ明確に伝えたい場合、404より具体的です。 |
代替URLがあるなら301を使い、恒久削除が正しい場合はサイトマップ整理とあわせて410を使います。
関連: 404, 301
|
|
411
|
Length Required
RFC 9110
|
Content-Lengthが含まれていないため、サーバーがリクエストを拒否したことを示します。 |
サーバーまたはゲートウェイがリクエスト本文の長さを事前に知る必要がある場合に起こります。 |
Content-Length、Transfer-Encoding、クライアントライブラリのストリーミング動作を確認します。
関連: 413
|
|
412
|
Precondition Failed
RFC 9110
|
If-Matchなど、条件付きリクエストの前提条件が失敗したことを示します。 |
同時編集の防止、キャッシュ再検証、ETagベースの更新で使われます。 |
If-Match、If-None-Match、If-Unmodified-Sinceを現在のリソースバージョンと比較します。
関連: 304, 409, 428
|
|
413
|
Content Too Large
RFC 9110
|
リクエスト本文が、サーバーが受け入れられるサイズを超えています。 |
ファイルアップロード制限、JSON本文サイズ制限、プロキシの本文サイズ制限でよく起こります。 |
サーバー、プロキシ、CDN、アプリケーション全体のアップロード制限を確認します。
関連: 411, 431
|
|
414
|
URI Too Long
RFC 9110
|
リクエストURIが、サーバーで処理できる長さを超えています。 |
非常に長いクエリ文字列、不具合のあるリダイレクトループ、GET URLへ過剰なデータを入れた場合に起こります。 |
長いデータはPOST本文へ移し、プロキシとサーバーのURI長制限を確認します。
関連: 400, 431
|
|
415
|
Unsupported Media Type
RFC 9110
|
サーバーがリクエスト本文のメディアタイプをサポートしていません。 |
JSON APIが誤ったContent-Typeを受け取った場合や、未対応のファイル形式がアップロードされた場合に発生します。 |
Content-Type、拡張子、multipart設定、サーバーパーサーが登録されているかを確認します。
関連: 406, 422
|
|
416
|
Range Not Satisfiable
RFC 9110
|
要求されたRangeがリソースサイズに合わないため、提供できません。 |
再開可能ダウンロードやストリーミングで、要求範囲がファイルサイズ外にある場合に発生します。 |
Rangeヘッダー、Content-Range、ファイルサイズ、古いキャッシュメタデータを確認します。
関連: 206
|
|
417
|
Expectation Failed
RFC 9110
|
サーバーがExpectヘッダーで示された期待条件を満たせないことを示します。 |
サーバーまたはプロキシがExpect: 100-continueなどの期待条件に対応していない場合に起こります。 |
Expectヘッダーを削除するか、サーバーが100 Continue処理に対応しているかを確認します。
関連: 100
|
|
418
|
I'm a teapot
RFC 2324 / RFC 9110
|
エイプリルフールのRFCに由来するコードで、実用的なエラー処理というより歴史的・文化的な意味を持ちます。 |
一部サービスでは遊び心のある応答、テスト、開発者文化として使われますが、通常のAPI設計には推奨されません。 |
本番APIでは、意味が明確に定義された4xxまたは5xxステータスコードを使います。
関連: 400
|
|
421
|
Misdirected Request
RFC 9110
|
リクエストが、それに対する応答を生成できないサーバーへ送られたことを示します。 |
HTTP/2接続再利用、TLS/SNI、CDN、リバースプロキシのルーティング設定ミスで起こることがあります。 |
Host、SNI、証明書、HTTP/2のconnection coalescing、CDNのオリジンルーティングを確認します。
関連: 400, 502
|
|
422
|
Unprocessable Content
RFC 9110
|
リクエスト構文は有効ですが、内容を意味的に処理できないことを示します。 |
APIバリデーション失敗、業務ルール違反、不正なフィールド値でよく使われます。 |
APIルール上、400を形式エラー、422を意味またはバリデーションエラーとするかを決めます。
関連: 400, 409, 415
|
|
423
|
Locked
RFC 4918
|
対象リソースがロックされているため、リクエストを処理できません。 |
ファイル編集ロック、共同編集ドキュメント、WebDAVリソースロックで使われます。 |
ロック所有者、ロック期限、解除API、競合処理ポリシーを確認します。
関連: 409, 424
|
|
424
|
Failed Dependency
RFC 4918
|
依存していた先行操作が失敗したため、現在のリクエストを実行できません。 |
複数の操作が相互依存し、先の操作の失敗が後続操作の失敗につながる場合に使われます。 |
失敗した先行操作と依存関係を応答本文で明確にします。
関連: 207, 423
|
|
425
|
Too Early
RFC 8470
|
早すぎて再送リスクがある可能性のあるリクエストを、サーバーが処理しないことを示します。 |
TLS 1.3の0-RTT early dataでリプレイ攻撃リスクがある場合に使われることがあります。 |
非冪等リクエストが0-RTTで送られないようにし、クライアントとサーバー設定を確認します。
関連: 429, 503
|
|
426
|
Upgrade Required
RFC 9110
|
サーバーがリクエストを処理する前に、クライアントへプロトコルのアップグレードを要求しています。 |
HTTPバージョン、TLS、WebSocketなど、特定のアップグレードが必要な場合に使われます。 |
Upgradeヘッダー、対応プロトコル、プロキシがアップグレードリクエストを転送するかを確認します。
関連: 101
|
|
428
|
Precondition Required
RFC 6585
|
サーバーが条件付きリクエストヘッダーを要求していることを示します。 |
If-Matchなどの条件を必須にし、同時編集による更新消失を防ぐために使われます。 |
クライアントにETagを読み取りIf-Matchで更新するよう伝えるAPIドキュメントとエラーメッセージを用意します。
関連: 412, 409
|
|
429
|
Too Many Requests
RFC 6585
|
クライアントが一定時間内に多すぎるリクエストを送信したことを示します。 |
APIレート制限、ログイン試行制限、botブロック、過剰な更新操作でよく使われます。 |
Retry-After、レート制限ヘッダー、ユーザー別またはトークン別の制限、backoff戦略を確認します。
関連: 403, 503
|
|
431
|
Request Header Fields Too Large
RFC 6585
|
リクエストヘッダー全体、または特定のヘッダーフィールドが大きすぎます。 |
Cookieが大きくなりすぎた場合や、認証トークン、トラッキングヘッダー、プロキシ追加ヘッダーが蓄積した場合に起こります。 |
Cookieサイズ、Authorizationヘッダーサイズ、プロキシチェーンが追加するヘッダーを減らします。
関連: 400, 413, 414
|
|
451
|
Unavailable For Legal Reasons
RFC 7725
|
法的理由により、リソースを提供できないことを示します。 |
裁判所命令、政府要請、著作権通知、地域規制によりコンテンツへのアクセスが制限される場合に使われます。 |
一般的な403や404とは異なり、法的要件を透明に示すために使われているかを確認します。
関連: 403, 404, 410
|