基本上,我试图通过启用缓存来使我的网站更加用户友好。为了测试我的进度,我正在使用Chrome和Linux中的开发人员工具。 IE的最终目标是最小化对Web服务器的调用次数。当chrome缓存某些东西时,开发的工具会给出 200(缓存)的请求响应。另一方面,IE将始终向服务器发送一个小请求,并在从其缓存中读取之前获得 304响应。
哪个浏览器正在关注HTTP,如果答案是Chrome,我该如何消除IE中不必要的304次调用?
答案 0 :(得分:3)
要明确:
根据您重新加载/刷新页面的方式,也存在细微差别,尤其是对于IE。 (您是否单击了刷新按钮,或者在网址栏上按 Enter ?)请参阅以下内容:
答案 1 :(得分:1)
IE有一些涉及缓存的特定行为。可以说不是不正确,但与其他浏览器不同。有关详细信息,请参阅this post。
一种不遵循最佳实践(!)的技术,是确保您的过期日期是未来的健康时间,并且不会将最后修改日期发送到IE。然后,IE将不会发送if-modified-since请求,而是仅在缓存过期时发送请求。在这种情况下,它将获得一个新文档(200)而不是304.这个新文档应该将过期日期设置为将来的健康时间。因此,通过使用将来有过期日期的缓存版本来消除许多请求。
if-modified-since请求是304响应的核心。如果自IE发送以来文档尚未被修改,则304响应是正确的。问题是,如果您的过期时间是过去的,即将始终发出此请求(每次都要调用服务器!)..并且永远不会获得新的过期日期。因此,它将继续进行相同的调用,您的服务器将继续使用相同的304响应进行回复。
我猜测Chrome对服务器的请求数量不是问题。如果是,你能更好地解释你在两种浏览器和流程中看到的请求数量吗?