1. ホーム
  2. http

[解決済み] Cache-Controlにおけるプライベートとパブリックの比較

2022-05-15 15:59:49

質問

IISでホストされているasp.netアプリケーションのPublicとPrivate Cache-Controlの違いを示す例について教えてください。

で読みました。 エムエスディーエヌ という違いがあること。

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

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

各選択肢からの長所と短所を完全に理解できたかどうか自信がありません。いつ使用するか、または使用しないかについての例があれば、とても助かります。

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

どのように解決するのですか?

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

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

経験則から言うと、もしそれが 誰もが がアクセスできるもの (たとえば、このページのロゴ) であれば、cache-control: public の方がよいかもしれません。接続されているユーザーに関連するものであれば (たとえば、このページの HTML は私のユーザー名を含んでいるので、他の誰にも有用ではありません)、キャッシュ制御: プライベート の方が良いでしょう。プロキシは他のユーザーから要求されないデータをキャッシュし、また、信頼できないサーバーに保管されたくないデータを保管するかもしれません。

そしてもちろん、公開されないものはすべてプライベートキャッシュを持つべきでしょう。そうでなければ、データは中間プロキシ サーバーに保存され、そこにアクセスできる人なら誰でもアクセスできてしまうかもしれません。