远期过期标头和HTTP 304

12
我正在尝试优化网站的加载时间。我已经为静态内容设置了远期过期头,以便它们被缓存(如 Yahoo 所述)。然而,即使它们被缓存了,浏览器仍会发送请求并收到该资源的 304 (未修改) 响应。
我知道 304 响应非常小,可能对性能影响很小,但有没有办法使浏览器完全不再发送请求,而只是始终使用该资源的缓存?

1
那不是由浏览器决定的吗? - danben
1个回答

18

如果你同时发送ETags和Expires,你可能想尝试关闭ETags。一些人建议关闭eTags,特别是当你有一个负载均衡器时。

另外,请注意,当你在页面上按下重新加载按钮时,Firefox将会重新检查所有资源。这些资源将返回304。如果你按下Shift+Reload,则会重新请求所有没有ETags的资源。因此,不要使用刷新/重新加载按钮来测试你的last-modifed/etag设置。


3
啊,我明白问题所在了!我之前一直使用浏览器刷新来检查访问日志,但当我使用普通的链接访问时,这些 304 错误就不再出现了。谢谢! - Roy Tang
2
我也曾经在浏览器刷新方面失败过。谢谢你分享这个! - nnevala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接