Cache-Control`ヘッダーに反対のオプションを含めることでオーバーライドできます。完璧な世界では、すべてが積極的にキャッシュされ、サーバーは時々コンテンツを検証するためにのみ接続されます。これは実際には頻繁に行われないため、長期的なキャッシュの実装と変化するサイトの要求への対応とのバランスをとることを目的とした、適切なキャッシュポリシーを設定する必要があります。一般的な問題コンテンツの作成方法(ユーザーごとに動的に生成される)またはコンテンツの性質(銀行の機密情報など)により、キャッシングを実装できない、または実装すべきでない状況が多くあります。キャッシュを設定する際に多くの管理者が直面する別の問題は、新しいバージョンが公開されていても、コンテンツの古いバージョンが荒廃しており、まだ古くなっていないという状況です。これらは両方とも頻繁に発生する問題であり、キャッシュのパフォーマンスと提供するコンテンツの精度に深刻な影響を与える可能性があります。これらの問題を予測するキャッシュポリシーを開発することにより、これらの問題を軽減できます。状況によって、使用するキャッシュ戦略が決まりますが、以下の推奨事項は、いくつかの合理的な決定に導くのに役立ちます。使用する特定のヘッダーについて心配する前に、キャッシュヒット率を上げるために実行できる特定の手順があります。いくつかのアイデアがあります:画像、CSS、および共有コンテンツ用の特定のディレクトリを確立:コンテンツを専用ディレクトリに配置すると、サイトの任意のページから簡単にそれらを参照できます。同じURLを使用して同じアイテムを参照します:ホストと要求されたコンテンツへのパスの両方のキーをキャッシュするため、すべてのページで同じ方法でコンテンツを参照するようにしてください。前の推奨事項により、これが大幅に簡単になります。可能な場合はCSS画像スプライトを使用します:アイコンやナビゲーションなどのアイテムのCSS画像スプライトは、サイトをレンダリングするために必要な往復回数を減らし、サイトがその単一スプライトを長時間キャッシュできるようにします。可能な場合はローカルでスクリプトと外部リソースをホストします:JavaScriptスクリプトやその他の外部リソースを利用する場合、正しいヘッダーがアップストリームに提供されていない場合、独自のサーバーでそれらのリソースをホストすることを検討してください。ローカルコピーを更新できるように、リソースのアップストリームへの更新を認識する必要があることに注意してください。指紋キャッシュアイテム:CSSやJavascriptファイルのような静的コンテンツの場合、各アイテムをフィンガープリントすることが適切な場合があります。これは、リソースが変更された場合に新しいリソース名を要求できるように、ファイル名に一意の識別子(多くの場合ファイルのハッシュ)を追加して、要求がキャッシュを正しくバイパスすることを意味します。HTMLドキュメント内で指紋を作成し、指紋への参照を変更するのに役立つさまざまなツールがあります。さまざまなアイテムに適切なヘッダーを選択するという点では、以下を参考にしてください。すべてのキャッシュに汎用アセットを保存できるようにする:静的コンテンツおよびユーザー固有ではないコンテンツは、配信チェーンのすべてのポイントでキャッシュできます。これにより、中間キャッシュが複数のユーザーのコンテンツで応答できるようになります。ブラウザがユーザー固有のアセットをキャッシュできるようにする:ユーザーごとのコンテンツの場合、多くの場合、ユーザーのブラウザー内でキャッシュを許可することは許容でき、便利です。このコンテンツは、中間キャッシングプロキシでキャッシュするのには適切ではありませんが、ブラウザでキャッシングすると、その後のアクセス中にユーザーがすぐに取得できます。重要な時間依存コンテンツの例外を作成する:時間依存のコンテンツがある場合は、上記のルールに例外を設定して、期限切れのコンテンツが重大な状況で配信されないようにします。サイトにショッピングカートがある場合、すぐにカート内のアイテムを反映する必要があります。`オプションを設定できます。常にバリデータを提供します:バリデータは、リソース全体を再度ダウンロードすることなく、古いコンテンツを更新できます。+`ヘッダーを設定すると、キャッシュはコンテンツを検証し、元の場所で変更されていない場合はコンテンツを再保存できるため、負荷がさらに軽減されます。サポートコンテンツのフレッシュネス時間を長く設定:キャッシュを効果的に活用するために、リクエストを満たすためにサポートコンテンツとしてリクエストされる要素は、多くの場合、フレッシュネス設定を長くする必要があります。これは一般に、ユーザーが要求したHTMLページをレンダリングするために取り込まれる画像やCSSなどのアイテムに適しています。フレッシュネス時間を延長し、フィンガープリントと組み合わせることで、キャッシュがこれらのリソースを長期間保存できるようになります。アセットが変更されると、変更されたフィンガープリントはキャッシュされたアイテムを無効にし、新しいコンテンツのダウンロードをトリガーします。それまでは、サポートするアイテムを将来的にキャッシュすることができます。親コンテンツの鮮度時間を短く設定:上記のスキームを機能させるためには、含まれるアイテムの鮮度時間を比較的短くするか、キャッシュしない場合があります。これは通常、他の補助コンテンツを呼び出すHTMLページです。HTML自体は頻繁にダウンロードされるため、変更に迅速に対応できます。その後、サポートコンテンツを積極的にキャッシュできます。重要なのは、可能な場合は積極的なキャッシュを優先し、将来変更が行われたときにエントリを無効にする機会を残してバランスを取ることです。サイトには次の組み合わせが含まれている可能性があります。積極的にキャッシュされたアイテム鮮度が短いキャッシュ済みアイテムと再検証機能まったくキャッシュすべきではないアイテム目標は、可能な場合は許容可能なレベルの精度を維持しながら、コンテンツを最初のカテゴリに移動することです。時間をかけてサイトに適切なキャッシュポリシーが設定されていることを確認すると、サイトに大きな影響を与える可能性があります。キャッシュを使用すると、同じコンテンツを繰り返し提供することに関連する帯域幅コストを削減できます。サーバーは、同じハードウェアでより多くのトラフィックを処理することもできます。重要なことは、クライアントのサイトでのエクスペリエンスがより速くなり、クライアントがより頻繁に戻ってくる可能性があることです。効果的なWebキャッシュは特効薬ではありませんが、適切なキャッシュポリシーを設定すると、最小限の作業で測定可能な利益を得ることができます。