Performance expires标头的说明

Performance expires标头的说明,performance,.htaccess,browser-cache,mod-expires,Performance,.htaccess,Browser Cache,Mod Expires,我有一个joomla应用程序在Apache上运行。为了提高站点性能,我们在应用程序的根目录下编写了一个.htaccess文件,并将far future expires头设置为所有静态内容。根据需要,第一次以200状态代码以全新方式加载文件。再次单击同一链接时,许多文件直接从缓存中提供。有两件事我需要解释 当我按f5键时,许多文件会加载304状态代码,但我希望它们直接来自缓存,而不会点击服务器获取状态头 当我关闭浏览器并再次回到同一页时,我看到同样的事情发生了许多文件加载时使用304状态码,尽管我

我有一个joomla应用程序在Apache上运行。为了提高站点性能,我们在应用程序的根目录下编写了一个.htaccess文件,并将far future expires头设置为所有静态内容。根据需要,第一次以200状态代码以全新方式加载文件。再次单击同一链接时,许多文件直接从缓存中提供。有两件事我需要解释

当我按f5键时,许多文件会加载304状态代码,但我希望它们直接来自缓存,而不会点击服务器获取状态头

当我关闭浏览器并再次回到同一页时,我看到同样的事情发生了许多文件加载时使用304状态码,尽管我认为它们将直接从浏览器缓存加载


我知道304还提供来自浏览器缓存的文件,但我想避免服务器之间的头通信,因为我的静态文件永远不会改变。我还想补充一点,我的请求是通过https连接的,这不会产生任何问题。

使用安全会话确实可能会导致缓存问题

为安全起见,许多浏览器不缓存SSL数据,SSL会话期间除外。当浏览器或选项卡关闭时,SSL缓存将被清除

Firefox有一个配置选项来控制这一点。我不知道IE。也有可能有一些缓存控制头会覆盖这种行为


我认为缓存控制头是HTTP/1.1,您应该使用它,也应该使用它。缓存控制提供了更多用于控制缓存的功能。

浏览器具有基于过期时间发送缓存内容请求的算法。通常,标题为“遥远未来”的内容永远不会像您预期的那样重新加载。但是,点击reload或F5会忽略这一点,并强制重新加载所有页面内容


要测试这一点,您需要将光标放回Win上的地址栏ALT-d,然后按Enter键。这就像重新浏览页面一样,浏览器的行为应该与您预期的一样。

您肯定应该设置缓存控制。Expires可能是可选的—现在大多数HTTP 1.0客户端可能都是机器人/脚本,它们无论如何都不会遵守缓存。