【问题标题】:Does the output cache respect response headers?输出缓存是否尊重响应标头?
【发布时间】:2009-12-17 17:18:18
【问题描述】:

我正在考虑使用 ASP.NET 输出缓存来提高我的自定义 HTTP 处理程序的性能。

如果我在响应中设置过期标头,输出缓存是否足够智能以相应地缓存响应?还是我需要手动创建一个合适的CacheDependency?

如果我 gzip 响应并设置 Content-Encoding 标头,如果打开动态压缩,输出缓存是否足够智能以防止响应被双 gzip 压缩?如果输出缓存具有 gzip 压缩版本并且不接受 gzip 的客户端请求资源,会发生什么情况?

【问题讨论】:

    标签: asp.net caching


    【解决方案1】:

    您可以将输出缓存设置为缓存与接受标头相关的内容,而不是响应标头。来自this walkthrough on IIS 7.0 caching

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <directoryBrowse enabled="true" />
            <caching>
                <profiles>
                    <add extension=".jpg" policy="CacheForTimePeriod"
                    duration="00:00:10" varyByHeaders="Accept-Language" />
                </profiles>
            </caching>                  
      </system.webServer>
    </configuration>
    

    使用此配置,输出缓存将为用户代理请求的每种语言缓存不同的值。您可以将“Accept-Encoding”添加到 varyByHeaders 以缓存同一资源的 gzip 和非 gzip 版本。

    至于到期标头,据我所知,输出缓存不会注意到它们。您必须分别设置输出缓存到期和到期 HTTP 标头 - 毕竟不能保证您希望对两者使用相同的策略。

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 2016-04-26
      • 2017-01-23
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      相关资源
      最近更新 更多