谷歌Chrome的静态资源缓存机制与其他浏览器不同。这样对吗?

时间:2016-12-21 09:34:38

标签: performance google-chrome firefox caching http-caching

设定:

我使用的是nginx服务器。我尝试了两组不同的标头配置。

1。仅过期标题。
2.过期和上次修改标题

我在所有浏览器中完成了以下操作,

  1. 清除缓存。访问页面(或硬重新加载)。现在,所有资源都是新下载的。该页面只下载一个JS文件。

  2. 进行软重装。 (Cmd + R)

  3. 完成软重载后,

    案例1:仅限过期标题

    1.Chrome(v55)从状态为200的磁盘/内存缓存提供服务。它不从服务器获取资源。

    2.Firefox(v51)每次发送一个请求并使用Status 200下载资源。当资源只有一个expires头时,firefox和其他浏览器总是下载该资源。

    案例2:过期和上次修改标题

    1.Chrome再次从状态为200的磁盘/内存缓存提供服务。它不从服务器获取资源。

    2.Firefox和其他浏览器总是向服务器发送'If-modified-since'标头,具体取决于标头,服务器发送200和资源或304 Not modified。< / p>

    其他浏览器方法的问题在于,它们总是发送资源请求来检查它的新鲜度。假设有40个静态资源,每次重新加载浏览器都会发送请求。 这会导致带宽使用量增加,对服务器的请求数量增加。

    哪种方法好?

    P.S。在chrome中,当您只有“Last Modified标头”时,它会发送304 Not Modified请求。但是对于expires和Last modified,它总是从缓存中提供。

0 个答案:

没有答案