【问题标题】:ASP.NET Response.Cache.SetNoStore() vs. Response.Cache.SetNoServerCaching()ASP.NET Response.Cache.SetNoStore() 与 Response.Cache.SetNoServerCaching()
【发布时间】:2012-01-06 00:06:51
【问题描述】:

谁能在 HTTP 级别分解这两种方法的作用。

我们正在处理 Akamai 边缘缓存,并被告知 SetNoStore() 将导致可以排除,因此(例如)表单页面将始终回发到源服务器。根据 {guy},这设置了 HTTP 标头:

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

当我对表单实施此更改时,我发现了 SetNoServerCaching()。嗯,这在语义上似乎更有意义,documentation 表示“明确拒绝在源服务器上缓存文档。”

所以我下海去海海看看我能看到的。我尝试了这两种方法并查看了 Firebug 和 Fiddler 中的标题。

据我所知,这两种方法都设置了完全相同的 Http Header。

谁能解释这些方法之间是否存在实际差异,如果有,http响应中隐藏在哪里?!

【问题讨论】:

    标签: asp.net caching akamai


    【解决方案1】:

    有一些不同,

    SetNoStore,实质上阻止浏览器(和任何网络资源,如 CDN)保存响应或请求的任何部分,包括保存到临时文件。这将设置NO-STORE HTTP 1.1 header

    SetNoServerCaching,将实质上阻止服务器保存文件,在 ASP.NET 中可能发生的缓存有几个级别,Data only、Partial Requests、Full Pages 和 SQL Data。此调用应停止保存在服务器上的 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 更快但这将是微不足道的。

    【讨论】:

    • 谢谢,这是对他们“意思”的一个很好的解释,但我正在寻找他们“做什么”的解释 - 即为什么这两种方法都将 Cache-Control 标头设置为确切相同的值:“无缓存,无存储”?在语义上(作为 .NET Framework 抽象),SetNoStore 似乎是停止 CDN/边缘缓存(作为某种中间件“客户端”)的正确选项,而 SetNoServerCaching 仅指原始服务器(IIS/ASP.NET)缓存。
    • 我在我的设置中检查了它,它没有为 SetNoSeo urverCaching 设置 no-cache,no-store 仅为 SetNoStore。您使用的是哪个版本的 .NET?
    • 有趣的是,此标头可能设置在应用程序的其他位置(.NET 4.0、Sitecore 6.1)。我可能会做一些进一步的调查。
    【解决方案2】:

    两者的区别是

    HttpCachePolicy.SetNoStore() 或 Response.Cache.SetNoStore: 防止浏览器缓存 ASPX 页面。

    HttpCachePolicy.SetNoServerCaching 或 Response.Cache.SetNoServerCaching: 停止当前响应的所有源服务器缓存。明确拒绝在源服务器上缓存文档。设置后,对文档的所有请求都将得到完全处理。

    调用这些方法时,无法为当前响应重新启用缓存

    【讨论】:

    猜你喜欢
    • 2014-11-06
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2010-12-06
    • 2013-03-27
    相关资源
    最近更新 更多