【问题标题】:mod_expires in apache htaccessapache htaccess 中的 mod_expires
【发布时间】:2012-03-09 18:13:39
【问题描述】:

我正在学习 apache 及其各种模块,目前我对 mod_expires 感到困惑。到目前为止我读到的是,使用这个模块我们可以为静态文件设置未来的过期标头,这样浏览器就不需要每次都请求它们。

我很困惑这样一个事实,即如果有人更改 css/js 或介于两者之间的任何图像文件,浏览器将如何知道它,因为我们已经告诉浏览器这不会改变,比如下一个 1年。

提前致谢

【问题讨论】:

  • 这篇关于 Optimize caching 的 Google 文章很好地概述了这个主题。

标签: apache http .htaccess caching


【解决方案1】:

您的 HTTP 服务器上可能无法提供所有提供的内容,但您只需更改文件名即可从服务器更新客户端上的文件。此时,浏览器将下载新内容。

有时,对于流量较少的网站,将缓存设置为低得多的值会更实用。

应始终谨慎使用 365 天的到期期限,您可以设置 1 年的到期期限这一事实并不意味着您总是必须这样做。换句话说,不要成为过早优化的牺牲品。

将缓存过期设置为 1 年的一个很好的例子是国家/地区的标志,它们不太可能改变。另外,请注意,通过简单的浏览器刷新页面,客户端可以丢弃本地缓存并再次从源下载内容。

测试所有这一切的一个好方法是使用带有Firebug 的Firefox。使用此扩展程序,您可以分析请求和响应。

在这里您可以找到RFC 规范。

【讨论】:

  • 只是添加。浏览器还可以询问服务器文件是否已更改。它使用 If-Modified-Since 标头执行此操作。这样,如果文件没有更改,浏览器不会再次下载文件,而是使用本地缓存。与 Expires 标头相比的(次要)缺点是浏览器仍然必须连接到服务器才能执行此检查,这需要一点时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 2012-02-06
  • 2017-01-20
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
相关资源
最近更新 更多