ネットワーク アプリケーションのキャッシュ管理

このトピックと関連するサブトピックでは、WebClientWebRequestHttpWebRequest、および FtpWebRequest クラスを使用して取得したリソースのキャッシュ処理について説明します。

キャッシュは、アプリケーションから要求されたリソースの一時的な記憶域として機能します。 アプリケーションから同じリソースを複数回要求される場合、キャッシュからリソースを返すことで、サーバーから再要求するオーバーヘッドを回避できます。 キャッシュによって、要求されたリソースの取得にかかる時間が短縮されるので、アプリケーションのパフォーマンスを改善できます。 また、サーバーへのトリップ回数が減るので、ネットワーク トラフィックを減らすこともできます。 キャッシュによってパフォーマンスは改善されますが、アプリケーションに古いリソースが返される危険性もあります。つまり、キャッシュを使用していなかった場合にサーバーから送信されたリソースと、キャッシュのリソースは同じではないということです。

また、キャッシュによって、権限のないユーザーまたはプロセスが機密データを閲覧できる可能性があります。 キャッシュされている認証済みの応答が、追加の承認なしでキャッシュから取得される可能性があるからです。 キャッシュを有効にする場合は、CachePolicyBypassCache または NoCacheNoStore に変更して、この要求のキャッシュを無効にしてください。

セキュリティの懸念事項があるため、中間層のシナリオにキャッシュを使用することは推奨されません

このセクションの内容

キャッシュ ポリシー
キャッシュ ポリシーの概要と定義方法について説明します。

場所ベースのキャッシュ ポリシー
ハイパーテキスト転送プロトコル (http と https) リソースに使用できる各種の場所ベースのキャッシュ ポリシーを定義します。

時間ベースのキャッシュ ポリシー
時間ベースのキャッシュ ポリシーのカスタマイズに使用できる条件について説明します。

ネットワーク アプリケーションでのキャッシュの構成
キャッシュ ポリシーとキャッシュを使用する要求をプログラムで作成する方法について説明します。

リファレンス

System.Net.Cache
取得したリソースのキャッシュ ポリシーを WebRequestHttpWebRequest、および FtpWebRequest クラスを使用して定義するために使用する型および列挙体を定義します。