6

これら 2 つのメソッドが HTTP レベルで行うことを誰でも分析できますか。

私たちは Akamai のエッジ キャッシングを扱っており、SetNoStore() によって除外される可能性があるため、(たとえば) フォーム ページが常にオリジン サーバーにポスト バックされるようになると言われています。{guy} によると、これは HTTP ヘッダーを設定します。

Cache-Control: "no-cache, no-store"

この変更をフォームに実装していたときに、SetNoServerCaching() を見つけました。それは意味的にもう少し理にかなっているようで、ドキュメントには「オリジンサーバーでのドキュメントのキャッシュを明示的に拒否する」と書かれています。

そこで海海海に降りて、見えるものを見に行きました。これらの方法の両方を試し、Firebug と Fiddler のヘッダーを確認しました。

そして、私が知る限り、これらのメソッドは両方ともまったく同じ Http ヘッダーを設定します。

これらの方法に実際の違いがあるかどうか、またその場合、http 応答のどこに隠れているかを説明できますか?!

4

2 に答える 2

6

多少の違いはありますが、

SetNoStore は、一時ファイルへの保存を含む、ブラウザー (および CDN などのネットワーク リソース) による応答または要求の任意の部分の保存を基本的に停止します。これにより、NO-STORE HTTP 1.1 ヘッダーが設定されます

SetNoServerCaching は、サーバーがファイルを保存するのを基本的に停止します。ASP.NET では、データのみ、部分的な要求、完全なページ、SQL データなど、いくつかのレベルのキャッシュが発生する可能性があります。この呼び出しは、サーバーに保存されている HTTP (完全および部分) 要求を停止する必要があります。このメソッドは、キャッシュ制御ヘッダーまたは no-store または no cache を設定しないでください。

もあります

Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetMaxAge(new TimeSpan(1, 0, 0));

キャッシュを設定する可能な方法として、これは content-expires ヘッダーを設定します。

CDN の場合、おそらく content-expires ヘッダーを設定して、CDN が HIT を取得した場合に新しいコンテンツを取得するタイミングを認識できるようにする必要があります。キャッシュなしまたはストアなしは、すべての HIT で再フェッチが発生するため、おそらく必要ないでしょう。基本的に、現在の ISP よりもエンド ユーザーへのバックボーン接続が高速である可能性を除いて、CDN がもたらすメリットを無効にすることになります。しかし、それはわずかです。

于 2011-11-25T22:56:07.153 に答える
5

両者の違いは

HttpCachePolicy.SetNoStore() または Response.Cache.SetNoStore: ブラウザーが ASPX ページをキャッシュしないようにします。

HttpCachePolicy.SetNoServerCaching または Response.Cache.SetNoServerCaching: 現在の応答のオリジン サーバー キャッシュをすべて停止します。オリジンサーバーでのドキュメントのキャッシュを明示的に拒否します。設定すると、ドキュメントに対するすべてのリクエストが完全に処理されます。

これらのメソッドが呼び出されると、現在の response に対してキャッシングを再度有効にすることはできません

于 2011-11-25T04:44:41.703 に答える