HTTP ステータスコードは、IETF が RFC 9110 で定義し、IANA に登録されています。Alibaba Cloud OpenAPI は、一般的にこの標準に従います。
Alibaba Cloud OpenAPI におけるステータスコードの規則
Alibaba Cloud OpenAPI は、一般的に本トピックで説明されている HTTP ステータスコード標準に従います。2xx は呼び出しの成功を示し、4xx は無効なパラメーター、認証の失敗、権限不足、クォータの超過などの呼び出し側の問題を示し、5xx はサーバー側の問題を示します。失敗した呼び出しでは、通常、より詳細な診断のためにCode フィールドとMessage フィールドが返され、呼び出しを一意に識別するRequestId も返されます。
ステータスコードの正確なセマンティクスとトリガー条件は、クラウドサービスによって異なる場合があります。OpenAPI オペレーションを呼び出す際は、そのサービスの最新の API リファレンスをご参照ください。
構造とクラス
ステータスコードは、リクエストの結果とレスポンスのセマンティクスを示す 3 桁の整数です。有効な値の範囲は 100~599 です。先頭の 1 桁がレスポンスのクラスを表します。末尾の 2 桁に分類上の意味はありません。
|
クラス |
意味 |
|
1xx (情報) |
リクエストを受信し、処理を継続していることを示す中間レスポンスです。1 つのリクエストに対し、ただ 1 つの最終レスポンスが返される前に、0 個以上の 1xx レスポンスが返される場合があります。 |
|
2xx (成功) |
リクエストが正常に受信、理解、受理されたことを意味します。 |
|
3xx (リダイレクション) |
リクエストを完了するには、クライアント側で追加のアクションが必要です。 |
|
4xx (クライアントエラー) |
リクエストの構文に誤りがあるか、リクエストを処理できないことを意味します。原因は通常、呼び出し元にあります。 |
|
5xx (サーバーエラー) |
サーバーが、一見有効に見えるリクエストを処理できなかったことを意味します。原因はサーバーにあります。 |
登録済みステータスコード
以下の表に、各コードの標準的な意味と、その定義仕様を示します。
1xx 情報
1xx 応答はヘッダーセクションの最後で終了し、コンテンツやトレイラーを含むことはできません。HTTP/1.0 では 1xx コードが定義されていなかったため、サーバーは HTTP/1.0 クライアントに 1xx 応答を送信してはなりません。
|
コード |
標準名 |
意味 |
定義元 |
|
100 |
続行 |
リクエストの最初の部分が受信され、まだ拒否されておらず、サーバーがリクエストのコンテンツを受け入れる準備ができていることを示します。ボディの送信を続け、この中間応答は破棄してください。 |
RFC 9110 |
|
101 |
プロトコルの切り替え |
サーバーは、Upgrade ヘッダーでリクエストされたプロトコルの変更を受け入れ、自身の Upgrade ヘッダーで有効になるプロトコルを指定します。 |
RFC 9110 |
|
102 |
処理中 |
WebDAV 拡張で定義されており、現在は非推奨です。新しい設計では使用しないでください。 |
RFC 2518 |
|
103 |
早期ヒント |
最終的な応答の前に、通常は Link ヘッダーなど一部のヘッダーを返し、クライアントがリソースのプリロードを開始できるようにします。 |
RFC 8297 |
2xx 成功
|
コード |
標準名 |
意味 |
定義元 |
|
200 |
OK |
リクエストが成功したことを示します。レスポンスのコンテンツはメソッドによって異なります。GET は対象リソースの表現を、POST はアクションのステータスまたは結果を、PUT と DELETE はアクションのステータスを、OPTIONS は通信オプションを返します。 |
RFC 9110 |
|
201 |
Created |
リクエストが処理され、1 つ以上の新しいリソースが作成されました。主要なリソースは Location ヘッダーによって識別されます。Location ヘッダーが送信されない場合は、対象の URI によって識別されます。 |
RFC 9110 |
|
202 |
Accepted |
リクエストは処理のために受理されましたが、処理は未完了であり、最終的に許可されない可能性があります。HTTP には非同期操作からステータスコードを再送信する機能がないため、通常、レスポンスはポーリングできるステータスリソースを示します。 |
RFC 9110 |
|
203 |
Non-Authoritative Information |
リクエストは成功しましたが、変換プロキシがコンテンツを変更したため、オリジンサーバーが 200 レスポンスで返す内容とは異なります。 |
RFC 9110 |
|
204 |
No Content |
リクエストは処理されましたが、レスポンスボディで送信する追加のコンテンツはありません。メタデータは引き続きレスポンスヘッダーで送信できます。 |
RFC 9110 |
|
205 |
Reset Content |
リクエストは処理され、クライアントはリクエストを発生させたドキュメントビューをリセットする必要があります。たとえば、フォームのクリアなどです。 |
RFC 9110 |
|
206 |
Partial Content |
サーバーが範囲リクエストを処理し、対象リソースの 1 つ以上の部分を返したことを示します。大きなファイルのレジューム転送やチャンクダウンロードで一般的に使用されます。 |
RFC 9110 |
|
207 |
Multi-Status |
WebDAV 拡張によって定義されています。ボディには、各サブオペレーションの個別のステータスが含まれます。 |
RFC 4918 |
|
208 |
Already Reported |
WebDAV バインディング拡張によって定義されています。1 つのレスポンス内で同じリソースを繰り返し列挙することを回避します。 |
RFC 5842 |
|
226 |
IM Used |
サーバーが対象リソースに 1 つ以上の差分エンコーディングを適用し、完全なリソースの代わりに差分を返したことを示します。 |
RFC 3229 |
3xx リダイレクト
コード 301、302、307、308 は、いずれもリソースが別の URI にあることを示します。これらのコードは、移動が恒久的か、またリクエストメソッドが変更される可能性があるかという点で異なります。歴史的な理由により、301 と 302 を処理するクライアントは POST を GET に書き換える場合があります。メソッドを保持する必要がある場合は、代わりに 308 と 307 を使用してください。
|
コード |
標準名 |
意味 |
定義元 |
|
300 |
複数の選択肢 |
ターゲットリソースには複数の表現があり、クライアントまたはユーザーはそれらの中から選択する必要があります。 |
RFC 9110 |
|
301 |
恒久的に移動した |
ターゲットリソースに新しい恒久的な URI が割り当てられており、今後の参照にはそれを使用する必要があります。サーバーは Location ヘッダーに新しい URI を送信する必要があります。 |
RFC 9110 |
|
302 |
発見した |
ターゲットリソースは一時的に別の URI に存在します。リダイレクトが変更される可能性があるため、今後のリクエストでは元の URI を使用し続けてください。 |
RFC 9110 |
|
303 |
他を参照 |
サーバーは、リクエストに対する間接的なレスポンスとして、クライアントを別のリソースにリダイレクトします。Location ヘッダーの URI に対して GET または HEAD リクエストを発行し、その結果をレスポンスとして提示します。新しい URI はターゲット URI と同等ではありません。 |
RFC 9110 |
|
304 |
未更新 |
条件付き GET または HEAD の前提条件が false と評価されました。これは、クライアントがすでに有効な表現を保持していることを意味します。サーバーは再送信をスキップし、クライアントはキャッシュされたコピーを使用できます。レスポンスはコンテンツを含みません。 |
RFC 9110 |
|
305 |
プロキシを使用 |
非推奨となっています。新しい実装では使用しないでください。 |
RFC 9110 |
|
306 |
(未使用) |
仕様の以前のバージョンで定義されましたが、現在は使用されておらず、予約されています。 |
RFC 9110 |
|
307 |
一時的なリダイレクト |
ターゲットリソースは一時的に別の URI に存在し、クライアントは自動的にリダイレクトに従う際にリクエストメソッドを変更してはなりません。 |
RFC 9110 |
|
308 |
恒久的なリダイレクト |
301 とセマンティクスは同じですが、クライアントにリクエストメソッドの保持を要求します。2014 年に定義され、同種のコードよりも新しいため、一部のレガシー実装では認識されない場合があります。 |
RFC 9110 |
4xx クライアントエラー
HEAD へのレスポンスの場合を除き、サーバーはレスポンスボディでエラーを説明し、その状態が一時的か恒久的かを示す必要があります。これらのコードは、あらゆるリクエストメソッドに適用されます。
|
Code |
標準名 |
意味 |
定義元 |
|
400 |
不正なリクエスト |
サーバーは、不正な構文、無効なメッセージフレーミング、または欺瞞的なルーティングなどのクライアントエラーと判断したため、リクエストを処理しません。 |
RFC 9110 |
|
401 |
認証が必要 |
リクエストに、ターゲットリソースに対する有効な認証情報がありません。サーバーは、適用可能なチャレンジを示す WWW-Authenticate ヘッダーを送信する必要があります。認証情報が提供されていた場合は、拒否されます。 |
RFC 9110 |
|
402 |
支払いが必要 |
将来の使用のために予約されています。 |
RFC 9110 |
|
403 |
禁止 |
サーバーはリクエストを理解していますが、満たすことを拒否しています。認証情報が提供されていた場合、サーバーはそれを不十分と判断しており、クライアントは同じ認証情報で自動的に再試行してはなりません。 |
RFC 9110 |
|
404 |
見つかりません |
オリジンサーバーは、ターゲットリソースの現在の表現を見つけられないか、あるいは存在することを開示したくありません。 |
RFC 9110 |
|
405 |
許可されていないメソッド |
ターゲットリソースはリクエストメソッドをサポートしていません。サーバーは、サポートされているメソッドを一覧表示する Allow ヘッダーを送信する必要があります。 |
RFC 9110 |
|
406 |
受理できません |
ターゲットリソースには、リクエスト内のコンテンツネゴシエーションヘッダーを満たす表現がありません。 |
RFC 9110 |
|
407 |
プロキシ認証が必要 |
401 と同様ですが、クライアントはオリジンサーバーではなくプロキシで認証する必要があります。 |
RFC 9110 |
|
408 |
リクエストタイムアウト |
サーバーは、待機できる時間内に完全なリクエストを受信できませんでした。 |
RFC 9110 |
|
409 |
競合 |
リクエストが、ターゲットリソースの現在の状態と競合しています。 |
RFC 9110 |
|
410 |
消滅 |
ターゲットリソースはオリジンサーバーで利用できなくなっており、この状態は恒久的である可能性が高いです。 |
RFC 9110 |
|
411 |
長さが必要 |
サーバーは、リクエストに Content-Length ヘッダーを要求します。 |
RFC 9110 |
|
412 |
前提条件で失敗しました |
リクエストヘッダー内の 1 つ以上の前提条件が、サーバー側で false と評価されました。 |
RFC 9110 |
|
413 |
コンテンツが大きすぎます |
リクエストボディが、サーバーが許容する、または処理できるサイズを超えています。 |
RFC 9110 |
|
414 |
URI が長すぎます |
リクエストターゲット URI が、サーバーが解釈できる長さを超えています。 |
RFC 9110 |
|
415 |
サポートされていないメディアタイプ |
ターゲットリソースは、リクエストボディのコンテンツ形式をサポートしていません。 |
RFC 9110 |
|
416 |
範囲が正しくありません |
Range ヘッダーの範囲がリソースの現在の範囲と重複せず、または範囲指定が無効です。 |
RFC 9110 |
|
417 |
期待に失敗しました |
Expect ヘッダー内の期待を、サーバーが満たせませんでした。 |
RFC 9110 |
|
418 |
(Unused) |
以前は非公式なプロトコルドラフトで使用されていました。予約されており、新しいセマンティクスを割り当てることはできません。 |
RFC 9110 |
|
421 |
誤ったリクエスト |
リクエストは、ターゲット URI に対する権威あるレスポンスを生成できないサーバーに向けられていました。 |
RFC 9110 |
|
422 |
処理できないコンテンツ |
リクエストボディのメディアタイプと構文は理解されましたが、そこに含まれる意味的な指示を処理できません。 |
RFC 9110 |
|
423 |
ロックされています |
WebDAV 拡張で定義されています。ターゲットリソースはロックされています。 |
RFC 4918 |
|
424 |
依存関係で失敗しました |
WebDAV 拡張で定義されています。このリクエストが依存するアクションが失敗しました。 |
RFC 4918 |
|
425 |
時期尚早 |
サーバーは、TLS アーリーデータでリプレイされたリクエストを処理しません。ハンドシェイクが完了した後に再試行してください。 |
RFC 8470 |
|
426 |
アップグレード要求 |
サーバーは現在のプロトコルでのリクエストを拒否しますが、クライアントがアップグレードした後は受け入れる場合があります。レスポンスには Upgrade ヘッダーを含める必要があります。 |
RFC 9110 |
|
428 |
前提条件が必要 |
サーバーは、リクエストを条件付きにすることを求めています。これにより、同時更新で互いに上書きされることを防ぎます。 |
RFC 6585 |
|
429 |
リクエストが多すぎます |
クライアントは、一定期間におけるレート制限で許可される回数を超えてリクエストを送信しました。レスポンスには、推奨される待機時間を示す Retry-After ヘッダーが含まれる場合があります。 |
RFC 6585 |
|
431 |
リクエストヘッダーフィールドが大きすぎます |
個々のヘッダーフィールド、またはヘッダーセクション全体が、サーバーが処理できるサイズを超えています。 |
RFC 6585 |
|
451 |
法的理由により利用不可 |
サーバーは、法的要求に応じてリソースへのアクセスを拒否します。 |
RFC 7725 |
5xx サーバーエラー
|
Code |
標準名 |
意味 |
定義元 |
|
500 |
内部サーバーエラー |
サーバーで予期しない状態が発生し、リクエストを処理できませんでした。 |
RFC 9110 |
|
501 |
未実装 |
サーバーは、リクエストを処理するために必要な機能をサポートしていません。通常、メソッドを認識できないことが原因です。 |
RFC 9110 |
|
502 |
不正なゲートウェイ |
ゲートウェイまたはプロキシとして動作するサーバーが、アップストリームサーバーから無効なレスポンスを受信しました。 |
RFC 9110 |
|
503 |
サービス利用不可 |
サーバーは、一時的な過負荷または計画メンテナンスのため、リクエストを処理できません。この状態は一時的であり、レスポンスには Retry-After ヘッダーが含まれる場合があります。 |
RFC 9110 |
|
504 |
ゲートウェイタイムアウト |
ゲートウェイまたはプロキシとして動作するサーバーが、アップストリームサーバーから時間内にレスポンスを受信できませんでした。 |
RFC 9110 |
|
505 |
サポートされていない HTTP バージョン |
サーバーは、リクエストで使用されている HTTP のメジャーバージョンをサポートしていない、またはサポートを拒否しています。 |
RFC 9110 |
|
506 |
Variant Also Negotiates |
透過的コンテンツネゴシエーション拡張で定義されています。サーバーの内部設定エラーを示します。 |
RFC 2295 |
|
507 |
容量不足 |
WebDAV 拡張で定義されています。サーバーは、リクエストを完了するために十分なストレージを割り当てられません。 |
RFC 4918 |
|
508 |
ループを検出 |
WebDAV バインディング拡張で定義されています。サーバーは、リクエストの処理中に無限ループを検出しました。 |
RFC 5842 |
|
510 |
拡張できない |
元の定義は廃止されました。このコードは登録されたままですが、そのセマンティクスはもはや適用されません。 |
RFC 2774 |
|
511 |
ネットワーク認証が必要です |
クライアントは、公衆 Wi-Fi ネットワークのキャプティブポータルと同様に、ネットワークにアクセスするために認証する必要があります。 |
RFC 6585 |