4xx クライアントエラー
4xx コードは一般的に、クライアント側の問題を示すエラー応答であり、ネットワークの問題である可能性があります。
- 4xx コードは、任意のリクエストメソッドに対する応答として使用できます。
- オリジンサーバーは、
HEADリクエストを除いて、User-Agent に表示される説明を含める必要があります。 - カスタムルールは、サイト所有者が Block アクションを持つルールを作成し、カスタム応答コードを設定した場合、HTML ページ内で 400-499 の範囲の任意の応答コードを返すことができます。詳細については、カスタム応答を参照してください。
以下は一般的な 4xx コードとその定義です:
400 Bad Request (RFC7231 ↗)
クライアントがサーバーに正しいリクエストを送信しませんでした。これはクライアントエラーです:不正なリクエスト構文、無効なリクエスト、メッセージフレーミング、または欺瞞的なリクエストルーティングです。 例えば、リクエストに正しくURLエンコード(またはパーセントエンコード) ↗されていない特殊文字が含まれている場合、この HTTP エラー 400 が返されます。
Cloudflare APIを使用しているときに HTTP エラーが発生した場合は、正しい構文、正しいパラメータ、および API コールの正しいボディを使用していることを確認してください。
401 Unauthorized (RFC 7235 ↗)
リクエストは適切な認証資格情報を持って送信されませんでした。
- サーバーは、セクション 4.1 ↗に従って、少なくとも 1 つのチャレンジを
WWW-Authenticateヘッダー フィールドの形式で送信する必要があります。 - クライアントは、同じ資格情報で 2 回目のリクエストを送信することができ、チャレンジが前回と同じであれば、サーバーはクライアントが必要な資格情報を見つけるのを助けるためのエンティティを提供します。
402 Payment Required (RFC7231 ↗)
RFC 標準によってまだ実装されていませんが、将来の使用のために予約されています。
403 Forbidden (RFC7231 ↗)
Cloudflare のブランドがない 403 エラーが表示される場合、これは常にオリジンウェブサーバーから直接返され、Cloudflare ではなく、一般的にサーバー上の権限ルールに関連しています。このエラーの主な理由は次のとおりです:
- オリジンウェブサーバーで設定した権限ルール(例えば、Apache の .htaccess)
- Mod_security ルール
- IP 拒否ルール。 Cloudflare の IP 範囲 ↗がブロックされていないことを確認する必要があります。
Cloudflare は、リクエストがすべてのオレンジクラウドの Cloudflare ドメインに対して有効なデフォルトの WAF 管理ルールに違反した場合、または特定のゾーンに対して有効な WAF 管理ルールに違反した場合に 403 応答を提供します。詳細は WAF 管理ルール をお読みください。
レスポンスボディに Cloudflare のブランドが含まれている 403 応答が表示される場合、これは多くのセキュリティ機能とともに返される HTTP レスポンスコードです:
- WAF カスタムまたは管理ルールでのチャレンジまたはブロックアクション
- デフォルトで中程度に設定されている セキュリティレベル
- ほとんどの 1xxx Cloudflare エラーコード
- ブラウザー整合性チェック
404 Not Found (RFC7231 ↗)
オリジンサーバーは要求されたリソースを見つけることができませんでした。これは通常、ホストサーバーがリソースを見つけられなかったことを意味します。このエラーのより永続的なバージョンを提供するには、410 エラーコードを使用する必要があります。
これらのエラーは通常、誰かがサイト上の URL を誤って入力したとき、他のページからのリンクが壊れているとき、以前存在していたページが移動または削除されたとき、または検索エンジンがサイトをインデックスする際にエラーが発生したときに発生します。典型的なサイトでは、これらのエラーは総ページビューの約 3% を占めますが、Google Analytics のような従来の分析プラットフォームでは追跡されないことが多いです。
ウェブサイトの所有者は通常、このエラーが発生したときに表示されるカスタムページを実装します。
Cloudflare は顧客のウェブサイトに対して 404 を生成しません。オリジンサーバーからのリクエストをプロキシするだけです。Cloudflare が提供するサイトで 404 が表示された場合は、ホスティングプロバイダーに連絡して支援を求める必要があります。
405 Method Not Allowed (RFC7231 ↗)
オリジンサーバーは要求されたリソースを認識していますが、使用されたリクエストメソッドはサポートされていません。
- オリジンサーバーは、そのリソースに対してサポートされているターゲットのリストを含む
Allowヘッダーも提供する必要があります。
例としては、変更できないリソースに対する POST があり、したがって GET のみを受け入れる場合です。
406 Not Acceptable (RFC7231 ↗)
リソースは、以前に設定された交渉ヘッダー(例:Accept-Charset および Accept-Language ヘッダー)に準拠してオリジンに存在しません。
このステータスコードは、このエラーを生成する代わりに、User-Agent に対して好ましくない方法を提供することで置き換えることができます。
407 Authentication Required (RFC 7235 ↗)
クライアントはリクエストに必要な認証を送信しませんでした。
408 Request Timeout (RFC7231 ↗)
オリジンサーバーは、合理的な時間内に完全なリクエストを受信しませんでした。
- サーバーは接続を待機し続けたくないことを示唆しています。
- サーバーは通常、「クローズ」接続オプションを使用することを選択するため、あまり使用されません。
409 Conflict (RFC7231 ↗)
リクエストは、リソースの現在の状態との競合のために完了しませんでした。通常、複数のクライアントが同じリソースを編集しようとする PUT リクエストで発生します。
- サーバーは、クライアントが競合の原因を認識できるように、十分な情報を含むペイロードを生成する必要があります。
- クライアントはリクエストを再試行することができ、すべきです。
Cloudflare は、エラー 1001: DNS 解決エラー ↗ に対して 409 応答を生成し提供します。
410 Gone (RFC7231 ↗)
要求されたリソースはオリジンで永久に欠落しています。
- サーバーは、リソースを参照するリンクを削除することを提案しています。
- サーバーは、このステータスコードを 404 応答の上に使用する資格がなく、特定の期間この応答を持つ必要はありません。
411 Length Required (RFC7231 ↗)
クライアントは、リクエストボディの Content-Length をヘッダーに定義しておらず、リソースを取得するためにこれが必要です。
- クライアントは、ヘッダーフィールドを追加した後にリクエストを再送信できます。
412 Precondition Failed (RFC 7232 ↗)
サーバーは、リソースがクライアントによって指定された条件を満たさなかったため、リクエストを拒否します。
バージョン管理の例として、クライアントが既存のリソースを変更し、If-Unmodified-Since ヘッダーをクライアントがリソースをダウンロードして編集を開始した日付に設定します。この日付以降にリソースが編集された場合(おそらく別のクライアントによって)、この応答が生成されます。なぜなら、最後の編集の日付がクライアントによって設定された If-Unmodified-Since の日付よりも後になるからです。
Cloudflare はこの応答を提供します。詳細については、ETag ヘッダーを参照してください。
413 Payload Too Large (RFC7231 ↗)
クライアントから送信されたペイロードがサーバーが受け入れたいと思っているよりも大きいため、サーバーがリクエストを処理することを拒否します。サーバーは接続を閉じるオプションがあります。
- この拒否が一時的にのみ発生する場合、サーバーはクライアントが再度リクエストを試みるべき時期を指定する
Retry-Afterヘッダーを送信する必要があります。
Cloudflare API のアップロード制限は、プランによって異なります。この制限を超えると、API コールは 413 Request Entity Too Large エラーを受け取ります。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | Yes | Yes | Yes | Yes |
Max upload size | 100 MB | 100 MB | 200 MB | 500+ MB |
より大きなアップロードが必要な場合は、リクエストを小さなチャンクに分割するか、DNS レコードを DNS のみ に変更するか、または プランをアップグレードしてください。
414 URI Too Long (RFC7231 ↗)
URI が処理されるには長すぎるため、サーバーが拒否します。例えば、クライアントが POST の後に異常に長い URI で GET リクエストを試みている場合、これはセキュリティリスクと見なされ、414 が生成されます。
Cloudflare は 32KB を超える URI に対してこの応答を生成します。
415 Unsupported Media Type (RFC7231 ↗)
現在のペイロードの形式を処理することをサーバーが拒否します。この問題を特定して修正する方法の一つは、クライアントのリクエストで送信された Content-Type または Content-Encoding ヘッダーを確認することです。
416 Range Not Satisfiable (RFC7233 ↗)
416 エラー応答コードは、サーバーが要求された範囲を提供できないことを示します。例えば:
HTTP/1.1 416 Range Not Satisfiable
Content-Range: bytes */12777
最も一般的な理由は、ファイルにそのような範囲が含まれていないことです。ブラウザは通常、ファイル全体を再リクエストするか、操作を中止します。
417 Expectation Failed (RFC7231 ↗)
サーバーがクライアントのリクエストの Expect ヘッダーに指定された要件を満たさなかったことを示します。
429 Too Many Requests (RFC6585 ↗)
クライアントがサーバーに対して指定された時間内に多くのリクエストを送信しました。一般に「レート制限」として知られています。サーバーは、リクエスト者が特定の期間後に再試行できるようにする情報を返すことがあります。
The global rate limit for the Cloudflare API is 1200 requests per five minutes per user, and applies cumulatively regardless of whether the request is made via the dashboard, API key, or API token.
If you exceed this limit, all API calls for the next five minutes will be blocked, receiving a HTTP 429 response.
Some specific API calls have their own limits and are documented separately, such as the following:
Enterprise customers can also contact Cloudflare Support to raise the limit to a higher value.
Cloudflare は、リクエストが レート制限 ↗されているときにこのステータスコードを生成して送信します。サイトの訪問者がこれらのエラーコードを受け取っている場合、レート制限分析でこれを確認できます。
451 Unavailable For Legal Reason (RFC7725 ↗)
サーバーは法的措置のためにリソースを提供できません。
通常、検索エンジン(例:Google)や ISP(例:ATT)がこの応答コードの影響を受け、オリジンサーバーは影響を受けません。
- 応答には、法的要求の詳細を含む説明がレスポンスボディに含まれるべきです。
nginx 特有の応答コードで、サーバーがリクエストを処理している間にクライアントによって接続が閉じられたことを示します。これにより、サーバーはステータスコードを返すことができなくなります。
- これは、Cloudflare Logs ↗およびエンタープライズ顧客向けのステータスコード分析に表示されます。
より多くのコンテキストを提供するために、Cloudflare とウェブサイトのオリジンサーバーの間に TCP 接続が確立される必要があります。その後、より高いプロトコル(この場合は HTTP)が「会話」を開始します。接続を確立するために、TCP は三者間ハンドシェイクを使用します:
- SYN: Cloudflare はオリジンサーバーに 3 つの SYN パケットを送信します。
- SYN+ACK: それに応じて、オリジンサーバーは SYN+ACK で応答します。
- ACK: 最後に、Cloudflare はオリジンサーバーに ACK を返します。
この時点で、Cloudflare とオリジンサーバーの両方が接続の確認を受け取り、通信が確立されます。しかし、オリジンサーバーが 15 秒以内に Cloudflare に SYN+ACK を送信しない場合、Cloudflare はもう一度再試行します(別の 15 秒のタイムアウト)。
したがって、クライアント側のタイムアウト値に応じて、3 つの異なるシナリオがあり、それぞれ独自のステータスコードが生成されます:
- クライアントのタイムアウトが短い場合(30 秒未満)、接続をあきらめ、Cloudflare は 499 エラーを記録します。
- クライアントのタイムアウトが長い場合(30 秒以上)、TCP 接続が正常に確立されると、HTTP トランザクションは通常通り続行されます。この場合、Cloudflare は通常のステータスコード(HTTP 200)を返します。
- クライアントのタイムアウトが長く、Cloudflare がオリジンサーバーとの TCP ハンドシェイクを確立できなかった場合、HTTP 522 を返します。