質問: ASP.NET Response.Cache.SetNoStore()対Response.Cache.SetNoServerCaching() HTTPレベルでこれらの2つの方法が何をするかは誰でも分かります。 我々はアカマイのエッジキャッシングを扱っており、SetNoStore()は排除を引き起こし、フォームページは常に元のサーバーにポストバックするようになっていると言われています。 {guy}によると、これはHTTPヘッダーを設定します: ``` Cache-Control: "no-cache, no-store" ``` この変更を私のフォームに実装していたとき、私はSetNoServerCaching()を見つけました。それは意味論的にもう少し意味をなさないように思えますし、[ドキュメント](https://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.setnoservercaching%28v=VS.100%29。 aspx )は、"元のサーバー上のドキュメントのキャッシュを明示的に拒否しています "と述べています。 そこで私は海の海の海に行って、私が見ることができるものを見ました。私はこれらの方法の両方を試み、FirebugとFiddlerのヘッダーを見直しました。 そして私が知ることから、これらの方法は全く同じHttpヘッダーを設定します。 誰も、これらの方法の間に実際の違いがあるかどうかを説明することができますか?もしそうなら、どこでHTTP応答に隠れているのですか?
回答: いくつかの違いがありますが、 SetNoStore, essentially stops the browser (and any network resource such as a CDN) from saving any part of the response or request, that includes saving to temp files. This will set the NO-STORE HTTP 1.1 header SetNoServerCachingは、基本的にサーバーのファイル保存を停止します。ASP.NETには、データのみ、部分的な要求、フルページ、SQLデータなど、いくつかのレベルのキャッシュが存在します。この呼び出しは、HTTP(完全および部分)要求がサーバーに保存されるのを停止する必要があります。このメソッドは、キャッシュ制御ヘッダーを設定しないでください。 もあります ``` Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetMaxAge(new TimeSpan(1, 0, 0)); ``` キャッシュを設定する方法として、content-expiresヘッダーを設定します。 CDNの場合、おそらくcontent-expiresヘッダーを設定して、新しいコンテンツをいつ取得するのかCDNが知っているのか、HITを取得するのかを知りたいと思うでしょう。あなたはおそらく、no-cacheまたはno-storeを望まないでしょう。これは、HITごとに再フェッチを引き起こすので、CDNがあなたに与える利益を無効にしているのです。ただし、現在のISPよりもエンドユーザへの高速なバックボーン接続しかし、それは限界がある。