网站优化速度的时候,静态资源缓存是一项很常用的手段。很多站长在配置服务器时,都会给图片、样式文件、脚本、字体文件加上缓存头,不过不少人只知道它可以提速,却不清楚背后会带来哪些副作用。
缓存头本质就是通过HTTP响应指令,告诉浏览器这份静态文件可以在本地存储多久。在有效期之内,用户再次打开网页,浏览器不会重新向服务器发起请求下载文件,而是直接读取本地已经缓存好的资源。
带来最直观的好处就是页面加载更快。尤其是图片较多的站点,重复访问时加载耗时会明显下降,用户浏览体验更好。同时服务器收到的请求数量变少,带宽流量消耗降低,减轻服务器的负载压力,高峰期网站也不容易卡顿。搜索引擎同样偏爱加载速度快的站点,页面速度提升对SEO体验指标也有正向增益。
但缓存设置不当也会引发麻烦。如果缓存有效期设置过长,当你修改了CSS、JS或者图片,已经访问过网站的用户浏览器依旧会读取旧的缓存文件,页面不会立刻刷新出新效果,出现改版之后样式错乱、图片没更新等现象。这时就算服务器上文件已经替换完成,访客那边也看不到变化。
想要规避这个问题,不能所有文件统一设置很长的缓存时间。可以按照资源变动频率区分对待:很少改动的logo图片、字体文件可以设置较长缓存;经常会调整的样式和脚本文件,缓存时间适当缩短,更新文件时给资源文件名添加版本号,就能强制浏览器加载全新文件,绕过旧缓存。
总而言之,静态资源开启缓存利大于弊,属于性价比很高的提速方案。只要把控好缓存周期,做好更新时的处理方案,就能做到提速与实时更新两不误。