Query String Caching Rules

最終更新日:2026-04-28 11:21:36

ユーザーがウェブサイトからコンテンツをリクエストする際、目的のロジックを実現するために、URLの疑問符の後に特別なパラメータを含めることがあります(例:http://domain/1.jpg?version=1)。デフォルトでは、CDNetworks CDN プラットフォームは URL リクエスト全体を CDN サーバーにキャッシュします。つまり、クエリストリング内のパラメータ値が異なると、コンテンツのキャッシュコピーが複数作成されます。ユーザーがリクエストした URL が CDN サーバーのキャッシュにヒットするためには、キャッシュされた URL と完全に一致する必要があります。

クエリストリングに多くのパラメータが含まれている場合、CDN サーバー上のキャッシュファイル数が増加し、キャッシュヒット率が低下する可能性があります。これにより、オリジンサーバーへのリクエストが増加し、ユーザーリクエストへの応答遅延が大きくなり、最終的にユーザーエクスペリエンス、オリジンサーバーの負荷、および運用コストに影響を与える可能性があります。

ウェブサイトのコンテンツをリクエストするユーザーが、疑問符の前のパスは同じで疑問符の後のパラメータが異なる URL を使用し、ウェブサイトが同じファイルをユーザーに返す場合は、キャッシュ目的で疑問符の後のパラメータを無視するように CDN プラットフォームを設定することをお勧めします。これにより、CDN サーバーでのキャッシュヒット率が向上し、ユーザーエクスペリエンスの向上とオリジンサーバーの負荷およびコストの削減が実現します。

Query String Caching Rules の設定方法

  1. CDNetworks Console にログインし、該当する製品を選択します。
  2. Configuration に移動し、設定するドメインを見つけて、上部の Edit Configuration またはドメインの右側にある Edit ボタン Cloud Security Product Maintenance Announcement をクリックします。
  3. 設定変更ページに入り、Cache Optimization の下の Query String を見つけて、Add ボタンをクリックします。
  4. ルール編集ページで、ニーズに基づいて以下の設定オプションを簡単に追加できます。

Apply to
CDNetworks CDN プラットフォームでは、ルールの適用範囲について以下のオプションを提供しており、ルールが適用されるリクエストを指定できます。

パラメータ 説明
All Requests 関連するドメインに対して開始されたすべてのリクエストがこのルールに適用されることを示します。
Specific File Type このルールは、指定されたファイルタイプに対するリクエストに適用されます。リストから選択するか、このフィールドでファイルタイプをカスタマイズできます。複数のファイルタイプは ; で区切ります(例:ace;aac)。
Specific URL Path このルールの対象となる特定の URI を設定できます。ルールごとに指定できる URI は1つだけです。
入力する URI には http://https:// を含めず、URI 部分のみを設定してください。たとえば、完全な URL が https://domain/browse/index.html の場合、/browse/index.html のみを設定する必要があります。特に、クエリストリングを含めることはできません。
Specific Directory このルールは指定されたディレクトリに向けられたすべてのリクエストに適用されます。ディレクトリは / で始まり / で終わる必要があり、文字、数字、および特定の特殊記号(アンダースコア、ハイフン、パーセント記号、ドットを含む)の任意の組み合わせで構成できます。たとえば、/file/1%1/ は、ディレクトリ http://domain/file/1%1/ およびその中のすべてのファイルに対するリクエストにルールが適用されることを示します。
複数のディレクトリは改行で区切る必要があることに注意してください。
URL Pattern (Regex) 正規表現を直接入力することも選択できます。/ で始める必要はありません。プラットフォームは自動的に URL の先頭に ^https?://[^/]/ を追加します。たとえば、.*.jpg$ は、このルールに関連付けられたすべてのドメイン全体で JPG ファイルに対するリクエストがこのポリシーに一致することを示します。

Query String Caching
Apply to を設定した後、URL 内のクエリストリングを CDN サーバーのキャッシュおよび応答の基準の一部とするかどうかを設定できます。CDNetworks CDN プラットフォームでは、次の3つのオプションを提供しています。

  • Ignore Query String- Cache Without Query String Parameters

    このオプションは、リクエスト URL 内のクエリストリングを無視します。クエリストリング内のパラメータが異なる場合でも、CDN サーバーは疑問符の前の URL のみをキャッシュします。ユーザーがリクエストした URL において、疑問符の後の異なるパラメータは、CDN サーバー上の同じキャッシュファイルにヒットします。

    さらに、CDN サーバーにキャッシュファイルがなく、オリジンサーバーからコンテンツを取得する必要がある場合に、クエリストリングを無視するかどうかも設定できます。ユーザーから CDN サーバーへのリクエストに関する前述の設定と同様に、ここで Yes を選択すると、CDN サーバーからオリジンサーバーへのリクエスト URL はクエリストリングを無視します。逆に、No を選択すると、CDN サーバーはオリジンサーバーへのリクエストにクエリストリングを含めて送信します。

  • Cache on Full Query String- Cache With All Query String Parameters

    このオプションは、リクエスト URL 内のクエリストリングを無視しません。すべてのクエリストリングパラメータを含む完全な URL が CDN キャッシュの基準として使用されます。URL 内のクエリストリングのパラメータ値が1つでも変更された場合、CDN サーバーは個別のファイルをキャッシュします。異なるクエリストリングパラメータを持つユーザーリクエストは、CDN サーバー上の異なるキャッシュファイルにヒットします。CDN サーバーがオリジンサーバーからファイルを取得する必要がある場合、リクエスト URL 内のすべてのクエリストリングパラメータが保持されます。

  • Cache on Specific Parameters - Cache With Selected Query String Parameters

    前のオプションと同様に、ユーザーリクエストをキャッシュして応答する際に、リクエスト URL 内のクエリストリングを無視しません。ただし、クエリストリングのどのパラメータをキャッシュおよび応答の基準として使用するかをカスタマイズできます。指定されたパラメータの値が異なる場合にのみ、CDN サーバーは個別のキャッシュオブジェクトを持ち、対応するキャッシュエンティティを使用して特定のユーザーリクエストに応答します。

    また、Parameter Caching Options セクションでは、Include Specific Parameters を選択して一部のクエリストリングパラメータをキャッシュ基準として使用するか、Exclude Specific Parameters を選択して一部のパラメータを除外し、他のパラメータのみをキャッシュ基準として維持するかを選択できます。複数のパラメータはセミコロンで区切って定義できます(例:name;year)。

    さらに、オリジンサーバーからコンテンツを取得する際に、リクエスト URL 内のクエリストリングパラメータを保持するかどうかを Origin Parameter Options フィールドで定義することもできます。これには Forward Full Query StringInclude Specific Parameters、または Exclude Specific Parameters が含まれます。これらのオプションの意味は前述のものと同じです。Exclude Specific Parameters を設定する際に - を入力した場合、オリジンサーバーへのリクエスト URL には一切のパラメータが含まれないことを意味します。複数のパラメータはセミコロンで区切って定義できます。

Case-Insensitive Match
このフィールドのデフォルト値は Yes です。

  • このフィールドで Yes を選択すると、Apply to で定義したルールのケース(大文字・小文字)の違いが無視されます。つまり、Apply to で定義したフィールドのケースのみが異なる2つのリクエスト URL は、同じルールに一致します。たとえば、http://domain/a.jpg?version=1 でクエリストリングを無視してキャッシュするように設定した場合、http://domain/A.jpg?version=1 も有効になります。
  • 逆に、No を選択すると、Apply to のケースの違いは無視されず、ユーザーリクエストを照合する際に Apply to の設定に厳密に従います。設定されたケースに一致する URL に対してのみ、ルールに従って CDN エッジサーバーでファイルがキャッシュされます。

Priority
Priority フィールドでは、このルールの優先順位レベルを指定できます。ユーザーのリクエストに基づいて、システムは設定したルールを照合します。複数のルールが適用される場合、優先順位の高いルールが最初に適用されます。


設定が完了したら、OK をクリックし、Next を選択して設定を送信してください。本番環境での潜在的な中断を最小限に抑えるために、ステージング環境で Pre-deploy テストを実施することを強くお勧めします。この重要なステップにより、本番環境に移行する前に構成が正確であることを確認できます。設定の正確性を確認したら、Deploy Now をクリックして本番環境に適用します。構成は通常 3〜5 分以内に有効になります。デプロイ前のテストの包括的なガイダンスと構成の有効性の確認については、チュートリアル Deploy the Configurations to Staging Environment for Validation を参照してください。


Best Practices

Example 1: Ignore Query String - Cache Without Query String and Ignore Query String When Fetching from Origin
以下に示すルールの設定では、URL 内のクエリストリングパラメータはキャッシュの基準として使用されません。リクエスト URL 内の疑問符の前のパスが同じである限り、CDN プラットフォーム上のキャッシュオブジェクトは1つだけになります。つまり、このルールに関連付けられたドメインに対するすべてのリクエストは、キャッシュ時またはオリジンからのファイル取得時にクエリストリングを無視します。ユーザーが http://domain/a.jpg?version=1 にアクセスした際、CDN 側でキャッシュヒットがない場合、CDN サーバーは http://domain/a.jpg からファイルを取得して CDN サーバーにキャッシュします。次回ユーザーが URL http://domain/a.jpg?version=2 をリクエストした際には、CDN 側のキャッシュに直接ヒットします。


Example 2: Cache on Full Query String - Cache With All Query String Parameters
以下に示すルールの設定では、ユーザーが jpg タイプのファイルをリクエストすると、URL 内のすべてのクエリストリングパラメータがキャッシュの基準として使用されます。クエリストリング内のいずれかのパラメータ値が異なる場合、個別のキャッシュエンティティが CDN 側にキャッシュされます。CDN でキャッシュヒットがない場合、完全なリクエスト URL を使用してオリジンからファイルを取得します。ユーザーが http://domain/1.jpg?version=1&name=john にアクセスした際、CDN 側でキャッシュヒットがない場合、CDN サーバーは http://domain/1.jpg?version=1&name=john からファイルを取得してプラットフォームにキャッシュします。次回ユーザーが URL http://domain/1.jpg?version=1&name=john をリクエストした際には、CDN 側のキャッシュに直接ヒットします。次のユーザーリクエスト URL が http://domain/1.jpg?version=2&name=john の場合は、キャッシュにヒットしません。


Example 3: Cache on Specific Parameters - Include Specific Parameters
以下に示すルールの設定では、ユーザーが /directory/ ディレクトリ内の URL をリクエストした場合、クエリストリング内のパラメータ name がキャッシュ基準として使用されます。クエリストリング内の name パラメータの値が異なる場合、個別のキャッシュエンティティが CDN 側にキャッシュされます。CDN でキャッシュヒットがない場合、完全なリクエスト URL を使用してオリジンからファイルを取得します。ユーザーが http://domain/1.jpg?version=1&name=john&year=1991 にアクセスした際、CDN 側でキャッシュヒットがない場合、CDN サーバーはオリジンからファイル http://domain/1.jpg?version=1&name=john&year=1991 を取得してプラットフォームにキャッシュします。次回ユーザーが URL http://domain/1.jpg?version=2&name=john&year=1991 をリクエストした際には、CDN 側のキャッシュに直接ヒットします。次のユーザーリクエスト URL が http://domain/1.jpg?version=1&name=sam&year=1991 の場合は、キャッシュにヒットしません。


Example 4: Cache on Specific Parameters - Exclude Specific Parameters
以下に示すルールの設定では、ユーザーが URL パス /query/1.jpg を持つ URL をリクエストした場合、クエリストリング内のパラメータ version はキャッシュ基準として使用されません。クエリストリング内の version パラメータ値のみが異なる場合、ファイルは CDN サーバー上の同じオブジェクトとしてキャッシュされます。name または year パラメータ値が異なる場合は、個別のオブジェクトが CDN サーバーにキャッシュされます。CDN でキャッシュヒットがない場合、完全なリクエスト URL を使用してオリジンからファイルを取得します。ユーザーが http://domain/query/1.jpg?version=1&name=john&year=1991 にアクセスした際、CDN 側でキャッシュヒットがない場合、CDN サーバーはオリジンからファイル http://domain/query/1.jpg?version=1&name=john&year=1991 を取得して CDN にキャッシュします。次回ユーザーが URL http://domain/query/1.jpg?version=2&name=john&year=1991 をリクエストした際には、CDN 側のキャッシュに直接ヒットします。次のユーザーリクエスト URL が http://domain/query/1.jpg?version=1&name=sam&year=1991 の場合は、キャッシュにヒットしません。


Notes

キャッシュのためにすべてのクエリストリングパラメータを無視しないように設定すると、異なるクエリストリングパラメータ値に対して別々のオブジェクトが CDN サーバーにキャッシュされることになります。これは CDN プラットフォームでのユーザーリクエストのキャッシュヒット率に影響を与え、オリジンサーバーへのリクエスト数を増加させ、ウェブサイトへのオリジンアクセスの増加につながる可能性があります。したがって、ビジネス上すべてのクエリストリングパラメータをキャッシュ条件として使用する必要がない場合は、キャッシュ時にクエリストリングパラメータを無視するか、一部のパラメータのみをキャッシュ条件として使用することをお勧めします。