Alibaba Cloud CDN は、エラー発生時に標準の HTTP ステータスコードを返します。本リファレンスでは、CDN が返す可能性のあるすべての 4xx および 5xx コードについて説明し、CDN における各コードの意味を解説し、解決するための具体的な手順を示します。
4xx ステータスコード
4xx コードはクライアント側エラーを示します。リクエストは CDN ネットワークに到達しましたが、リクエスト自体に問題があるか、クライアントに必要な権限または認証情報が不足しているため、処理されませんでした。
400 Bad Request
オリジンサーバーは、不正な構文または無効なパラメーターにより、リクエストを理解または処理できませんでした。
解決策: リクエストパラメーターにエラーがないか確認し、再送信してください。
401 Unauthorized
リクエストに有効な認証情報が含まれていませんでした。オリジンサーバーは、リクエストを処理する前に認証を要求します。
解決策: 有効な認証情報を含めて再試行してください。オリジンサーバーで認証を処理する場合は、まずそこでリクエストを承認してください。
403 Forbidden
オリジンサーバーはリクエストを理解しましたが、クライアントにリソースへのアクセス権限がないため、処理を拒否しました。
解決策: クライアントに必要な権限を付与した上で、再試行してください。
404 Not Found
オリジンサーバーは、リクエストされたリソースを見つけることができませんでした。
解決策:
リクエストパスが正しいことを確認してください。
リソースがオリジンサーバーに存在することを確認してください。
オリジンサーバーの URL パスがインターネットから到達可能かどうかを確認してください。
405 Method Not Allowed
オリジンサーバーはリソースを認識していますが、リクエストで使用された HTTP メソッドをサポートしていません (例: GET のみを受け付けるエンドポイントに POST を送信した場合)。
解決策: リクエストを、オリジンサーバーがサポートする HTTP メソッドに変更して再試行してください。
406 Not Acceptable
オリジンサーバーは、クライアントのコンテンツネゴシエーションヘッダー (例: Accept-Charset または Accept-Language) を満たす形式でリソースを返すことができません。
解決策: オリジンサーバーがサポートするコンテンツタイプとエンコーディングを指定するようにリクエストヘッダーを更新し、再試行してください。
407 Proxy Authentication Required
クライアントとオリジン間のプロキシサーバーが要求する認証情報が提供されませんでした。
解決策:
プロキシオリジンサーバーの認証が期限切れになっていないか確認してください。
プロキシオリジンサーバーから発行された正しい認証情報を含めてください。
リクエストを再試行してください。
408 Request Timeout
オリジンサーバーは、タイムアウト期間内に完全なリクエストを受信できず、接続を閉じました。
解決策: オリジンサーバーのタイムアウト期間を延長するか、リクエストペイロードのサイズを削減してから、再試行してください。
409 Conflict
リクエストが、対象リソースの現在の状態と競合しています。これは、クライアントが最後に取得した後に変更されたリソースを更新しようとした際の PUT リクエストでよく発生します。
解決策: リソースを再取得し、変更内容を反映してから再送信してください。または、オリジンサーバーに競合処理ロジックを追加してください。
410 Gone
リソースは、オリジンサーバーから意図的かつ恒久的に削除されました。
解決策: クライアントまたはアプリケーション内の削除されたリソースへのすべての参照を削除してください。404 とは異なり、410 は恒久的な削除を示すため、無期限に再試行しないでください。
411 Length Required
リクエストに Content-Length ヘッダーが含まれていません。オリジンサーバーは、リクエストボディを処理するためにこのヘッダーを必要とします。
解決策:
コンテンツの長さが既知の場合は、リクエストヘッダーに
Content-Length: <size>を追加してください。長さを事前に決定できない場合は、代わりに
Transfer-Encoding: chunkedを使用してください。
412 Precondition Failed
オリジンサーバーは、リクエスト内の条件付きヘッダー (例: If-Match または If-Unmodified-Since) を評価しましたが、前提条件が満たされませんでした。
解決策: 最新の有効な前提条件を含むようにリクエストを更新し、再試行してください。
413 Payload Too Large
リクエストペイロードが、オリジンサーバーで設定された最大許容サイズを超えています。
解決策: アップロードまたは送信のサイズを削減してから、再試行してください。
414 URI Too Long
リクエスト URI が、オリジンサーバーが処理できる長さを超えています。
解決策: URI を短縮してください。リクエストに多数のパラメーターが含まれている場合は、複数のリクエストに分割し、クライアント側で結果を集約してください。
415 Unsupported Media Type
リクエストペイロードが、オリジンサーバーがサポートしていない形式になっています。
解決策: リクエストヘッダーの Content-Type を、オリジンサーバーが受け入れるメディアタイプに設定してから、再試行してください。
416 Range Not Satisfiable
リクエスト内の Range ヘッダーが、リソースの範囲外のバイト範囲を指定しています。
解決策: Range ヘッダー内の範囲がリソースサイズに対して有効であることを確認し、修正してから再試行してください。
417 Expectation Failed
オリジンサーバーは、Expect リクエストヘッダーで指定された期待値を満たすことができませんでした。
解決策: このコードは、テスト中に最もよく表示されます。本番環境で表示される場合は、リクエストヘッダーの Expect フィールドを無効にしてください。
429 Too Many Requests
クライアントが、指定された期間内にオリジンサーバーのレート制限のしきい値を超えました。
解決策: Retry-After レスポンスヘッダーで示された間隔 (存在する場合) が経過した後、またはオリジンサーバーによって設定されたレート制限ウィンドウがリセットされた後に、バックオフして再試行してください。
499 Client Closed Request
サーバーがリクエストの処理を完了してレスポンスを送信する前に、クライアントが接続を閉じました。
これは通常、大容量ファイルのアップロードや長時間実行される API 呼び出しなど、低速な操作中にクライアントがローカルでタイムアウトした場合に発生します。クライアントはすでに切断されているため、エラーページを受信しません。
5xx ステータスコード
500 Internal Server Error
オリジンサーバーで内部エラーが発生し、リクエストを処理できませんでした。
解決策:
オリジンサーバーのエラーログを確認し、根本原因を特定してください。
最近のデプロイが原因でエラーが発生した場合は、最後の正常なバージョンにロールバックしてサービスを復元してください。
根本的な問題を修正し、再試行する前にオリジンが正しく応答していることを確認してください。
502 Bad Gateway
CDN POP がオリジンサーバーに接続できず、有効なレスポンスを受信しませんでした。
解決策:
オリジンサーバーが稼働しており、到達可能であることを確認してください。
オリジンサーバーのファイアウォールルールを確認し、CDN POP からのインバウンドトラフィックが許可されていることを確認してください。
オリジンサーバーのログで接続エラーを確認してください。
503 Service Unavailable
オリジンサーバーが一時的に過負荷状態にあり、リクエストを処理できません。
解決策:
オリジンサーバーの負荷を確認し、どのアプリケーションまたはプロセスが過剰なリソースを消費しているかを特定してください。
504 Gateway Timeout
CDN POP がオリジンサーバーにリクエストを送信しましたが、設定されたタイムアウト期間内にレスポンスを受信しませんでした。
解決策:
オリジンサーバーが利用可能かつ到達可能であることを確認してください。
オリジンサーバーのパフォーマンスを確認してください。低速なデータベースクエリや長時間実行されるプロセスがタイムアウトの原因となる場合があります。
正当な理由でオリジンがより長い応答時間を必要とする場合は、必要に応じてタイムアウト期間を延長してください。
508 Loop Detected
CDN POP によって転送されたリクエストが CDN ネットワークにリダイレクトされ、最大リダイレクト制限を超える無限ループが発生しました。
これは通常、オリジンサーバーまたはリダイレクトルールが、リクエストを開始した CDN ドメインにトラフィックを送り返す場合に発生します。
解決策:
オリジンサーバーとすべてのリダイレクトルールで循環参照がないか確認してください。
すべてのループまたはリダイレクトチェーンに終了条件があることを確認してください。
ループを修正した後、リクエストを再試行してください。