不同的浏览器如何处理没有 Expires Header 的静态内容的缓存?

Posted

技术标签:

【中文标题】不同的浏览器如何处理没有 Expires Header 的静态内容的缓存?【英文标题】:How do different browsers handle caching for static content without an Expires Header? 【发布时间】:2010-10-26 07:32:56 【问题描述】:

在一个站点上运行YSlow plugin 后,我看到recommendations 之一是将远期过期标头添加到脚本、样式表和图像中。

我向different question 询问了如何在 IIS 中进行设置,但实际上我只是对每个浏览器的行为方式感到好奇。

我已经读到 IE 会在每个浏览会话中缓存项目,因此一旦您在关闭浏览器后重新打开站点,它将需要重新加载所有内容。我相信 Firefox 会继续自己设置到期日期。我还听说通过 HTTPS 连接时 IE 根本不缓存。不过,我不确定这些是否准确,并且想知道是否有人可以澄清我可能有的任何误解。谢谢!

【问题讨论】:

【参考方案1】:

您对 Firefox 设置自己的到期日期是正确的。请参阅此博文中的第二项:

http://blog.httpwatch.com/2008/10/15/two-important-differences-between-firefox-and-ie-caching/

IE 和 Firefox 一样,可以缓存基于 HTTPS 的内容。但是,您需要设置 Cache-Control: public 以在 Firefox 中跨浏览器会话进行持久缓存。请参阅此博客文章中的提示 #3:

http://blog.httpwatch.com/2009/01/15/https-performance-tuning/

【讨论】:

以上是关于不同的浏览器如何处理没有 Expires Header 的静态内容的缓存?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理网页浏览器弹出的认证[重复]。

如何处理不同的图像尺寸

browserify 如何处理循环依赖?

如何处理 <head> 标签中的 body onload 事件

你如何处理不同的字符编码?

JAWS 如何处理 ARIA 角色?