144

IISでホストされているasp.netアプリケーションのパブリックキャッシュコントロールとプライベートキャッシュコントロールの違いを示す例を教えてください。

私はMSDNで、違いは次のとおりであることを読みました。

Public: Cache-Control:publicを設定して、応答がクライアントおよび共有(プロキシ)キャッシュによってキャッシュ可能であることを指定します。

プライベート:デフォルト値。Cache-Control:privateを設定して、応答がクライアントでのみキャッシュ可能であり、共有(プロキシサーバー)キャッシュではキャッシュできないことを指定します。

それぞれの選択肢の長所と短所を完全に理解したかどうかはわかりません。いつ使用するかしないかの例は素晴らしいでしょう。

たとえば、同じアプリケーションをホストしている2つのWebサーバーがある場合はどうすればよいですか?プライベートまたはパブリックを選択した場合に注意すべき点はありますか?

4

1 に答える 1

255

唯一の違いは、Privateを使用すると、プロキシが通過するデータをキャッシュすることを許可しないことです。結局、それはすべてあなたが送っているページ/ファイルに含まれているデータに要約されます。

たとえば、ISPがあなたとインターネットの間に目に見えないプロキシを持っている可能性があります。つまり、Webページをキャッシュして、必要な帯域幅の量を減らし、コストを削減します。cache-control:privateを使用して、ページをキャッシュしないように指定します(ただし、最終ユーザーはキャッシュできます)。cache-control:publicを使用する場合、誰もがページをキャッシュしても問題ないということなので、プロキシはコピーを保持します。

経験則として、誰もがアクセスできるもの(たとえば、このページのロゴ)の場合、キャッシュ制御:パブリックの方が良い場合があります。これは、キャッシュする人が多いほど、必要な帯域幅が少なくなるためです。接続されているユーザーに関連するものである場合(たとえば、このページのHTMLには私のユーザー名が含まれているため、他のユーザーには役立ちません)、キャッシュ制御:プロキシがデータをキャッシュするため、プライベートの方が適していますこれは他のユーザーから要求されることはなく、信頼できないサーバーに保持したくないデータを保持している可能性もあります。

そしてもちろん、パブリックでないものはすべてプライベートキャッシュを持つ必要があります。そうしないと、データにアクセスできる人なら誰でもアクセスできる場合、データは中間プロキシサーバーに保存される可能性があります。

于 2010-08-16T10:51:30.347 に答える