コンテンツにスキップ

再検証とリクエストの統合

再検証は、クライアントやユーザーに提供する前にキャッシュデータの新鮮さを確認するキャッシングメカニズムです。キャッシュされたオブジェクトがもはや新鮮でない場合、Cloudflareがそのリクエストを受け取ると、Cloudflareキャッシュ内のオブジェクトを再検証するためにオリジンにリクエストが送信されます。

例のシナリオ

以下の例のシナリオを考えてみましょう。

例 1

1,000件のリクエストが同時にCloudflareのネットワークに到着し、要求されたリソースはCloudflareに存在しますが、そのTTL設定が新鮮でないことを示しているため提供できません。これは、リソースがオリジンサーバーから提供される必要があることを意味します。この場合、1件のリクエストがオリジンに再検証のために送信され、残りの999件のリクエストはUPDATINGのステータスでキャッシュから提供されます。これは、リソースが期限切れであるにもかかわらず、Cloudflareのキャッシュから古い状態で提供され、オリジンサーバーがそれを更新していることを意味します。この動作は、cache-controlstale-while-revalidateディレクティブによって定義されています。古いコンテンツを提供したくない場合は、ディレクティブをゼロ秒、stale-while-revalidate=0に設定してください。

例 2

1,000件のリクエストが単一のCloudflareデータセンターに同時に到着し、要求されたアセットがCloudflareのキャッシュに存在しない(キャッシュミス)場合、これらのリクエストはキャッシュロックを使用してオリジンと通信します。これは、最初のリクエストのみがオリジンにアセットを取得するために送信されることを意味します。残りの999件のリクエストは、最初のリクエストがデータを取得するのを待ち、その後、レスポンスが待機しているすべてのリクエストにストリーミングされます。キャッシュロックは、Cloudflareが特定のアセットに対してオリジンに一度に1件のリクエストのみを送信することを保証し、オリジンが過剰なトラフィックを受けるのを防ぎます。