为什么网站图标缓存时间更长?

Why are favicons cached longer?

我想知道为什么网站图标与图像和其他资源不同,在缓存中存储的时间要长得多,而且似乎也非常持久。我正在使用 Google Chrome,所以这个问题针对的是这个浏览器,但也针对一般浏览器,因为我在其他浏览器中也观察到了这种行为。

This question (相关,非重复) 针对 "how to delete them" 问题。但是,我想了解 为什么 favicons 似乎被如此区别对待,而我对删除它们的兴趣是次要的而不是无关紧要的。

作为网络开发人员,我可以简单地申请 favicon.ico?2 并获得 "fresh"。责任在于应用程序的提供者,而不是用户管理他自己的缓存 (或 "petting" 我喜欢称之为我的应用程序)。所以这不是我的主要问题。


为什么 网站图标似乎比其他资源更持久?

我不认为有任何关于 favicons 应该被缓存多长时间(以及为什么)的官方规范。您应该问浏览器开发人员为什么他们决定将它们缓存更长的时间。

我的猜测是,由于网站相对较少更改网站图标,因此无需经常检查网站图标是否已更新。

我认为浏览器制造商认为长期缓存网站图标是合理的,原因如下:

  • 这是一场赌博,但很安全。统计上 - 图标很少改变。我敢打赌 Google 有关于平均网站图标更改频率的统计数据,我敢打赌每年不会超过一次。

  • 由于标签是一项重要的浏览器功能,如果您在访问网站时可以立即在标签中看到网站图标,那就太好了。但是,如果您可以从缓存中获取收藏夹图标,那就太好了,因为如果您必须发出网络请求来获取它 - 与为网页本身加载关键资源相比,该请求在列表中的优先级可能很低。如果几天内无法缓存 favicon,浏览器几乎每次都必须通过网络请求加载它 - 这可能会使用户感觉浏览器选项卡迟钝。

  • 由于浏览器将网站图标用于书签等持久数据 - 将它们长期缓存可能是有益的。当用户浏览他们的书签时,如果他们都有一个收藏夹图标,那看起来会很不错,即使您已经很久没有访问该页面了。