【问题标题】:Are ASPX pages defaultly cached by the client?ASPX 页面是否默认由客户端缓存?
【发布时间】:2012-02-16 22:15:23
【问题描述】:

我正在使用 IIS 7.5,我想知道是否应该禁用 客户端缓存。浏览器/客户端是否使用默认的 ASP.Net/IIS 设置缓存了我的 ASPX 页面?

是否有需要我禁用客户端缓存的浏览器?我的 aspx 页面永远不会返回“304 Unmodified”。

【问题讨论】:

  • 你必须阅读这个:msdn.microsoft.com/en-us/library/06bh14hk(v=vs.100).aspx 有特定的 ASP.NET 指令来指示 IIS/浏览器如何处理页面级缓存...
  • @DavidePiras 是的,我知道有。但是我想知道浏览器的默认行为,这不在文档的范围内,是吗?
  • 检查这个问题并回答:stackoverflow.com/a/956000/559144
  • 浏览器不知道也不关心页面是“动态”.aspx 文件。它只知道它的内容是html。
  • 我不是 100% 确定,但我认为默认情况下不会添加任何过期标头,因此由浏览器根据其默认值来决定。这个答案可能会有所帮助:stackoverflow.com/a/918346/26226

标签: asp.net iis caching browser cross-browser


【解决方案1】:

这里有几个 cmets 询问了客户端缓存默认值。

问题在于,如果您的应用程序没有明确说明给定页面是否可缓存,那么您将受到浏览器设置的摆布。

有些人将他们的浏览器配置为缓存所有内容,有些人设置为在请求页面时查找返回的标头以确定是否要执行完整请求。其他人将他们的浏览器设置为从不缓存任何本地内容。

综上所述,大多数浏览器都设置为缓存...有时。扩展名是什么并不重要(html/aspx/whatever)。一切都与内容有关:html、图像等,以及在请求给定资源时浏览器给出的响应。

现在,如果您不希望缓存站点文件,则应在应用程序中进行适当的设置以强制执行此操作。通过这种方式,您可以覆盖为特定客户端的浏览器设置的任何行为。

【讨论】:

    【解决方案2】:

    您无需更改 IIS 中的任何内容,asp.net 为您提供了从应用程序代码和 webconfig 文件中缓存所需的所有控制权。如果您不更改任何内容,那么您不必担心用户会看到旧页面(如果您不是自己编写代码)。

    【讨论】:

    • 那么默认情况下客户端没有缓存aspx页面?
    • 我认为@EPLKleijntjens 可能指的是服务器端缓存。
    • 我相信默认情况下不会有客户端缓存,但理论上asp.net有可能自动启用页面被浏览器缓存,并在适当的时候智能发送304响应。我没有对此进行测试,所以我不确定这一点,但是,事实仍然是,当您更改 aspx 文件中的任何内容时,asp 会知道并采取相应的行动。因此无需担心用户会看到旧页面。
    猜你喜欢
    • 2011-02-02
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多