Blessing Skin 是一个 PHP 语言驱动的 Minecraft 游戏皮肤托管站点系统。在一个典型的 Blessing Skin 实例中,页面内容分别来自主站点的动态和静态内容,以及来自 CDN 的前端资源文件。
可以看到,站点首次加载会下载大约 500 KB 的数据,解压出 1.9 MB 的资源,共用时 2 秒。其中有来自 unpkg CDN 的 fontawesome 字体包,以及站点本身的 HTML、CSS 与 JavaScript。
再次刷新,可以看到除了主 HTML 外的所有内容均从内存缓存或磁盘缓存中加载。缓存的选择似乎没有什么规律,只能看出 CSS 和 favicon 图标从磁盘缓存读出,而 JavaScript 和背景 WebP 从内存缓存读出。
新建标签页再打开站点,可以看到所有缓存的资源都从磁盘缓存中读取。
还可以留意到 Data URI 的缓存策略似乎和其他资源并不相同。在这个案例中,Data URI 提供的 woff2 字体并没有涉及到磁盘缓存,而是在打开浏览器标签时使用内存缓存,重新打开后则使用磁盘缓存。
我们可以看看另一个 Blessing Skin 实例 LittleSkin。LittleSkin 是一个快速、可靠的公益 Minecraft 皮肤站,向公众开放 Minecraft 游戏角色皮肤上传和托管。
首次加载传输了约 800 KB 的数据,解压出 2.3 MB 的资源。
刷新后,仅有部分资源通过内存或磁盘缓存提供,大部分 CSS 和 JavaScript 文件都再次向网站发出了请求,并得到了 304 Not Modified 的响应。
与本地实例不同,该网站使用了 CDN,且服务器提供了有效的 Age、Last-Modified 响应标头。