缓存 (Cache) 是指把取得过一次的数据临时保存下来,等下次需要同样的数据时可以迅速取出的机制。这和把常用的教科书从书架里拿出来放在书桌上是同样的思路。比起每次都走到书架前去取,放在桌面上要快得多。
浏览器缓存是最贴近日常的一种缓存。第一次访问某个 Web 网站时,图片和 CSS 等文件会被保存到浏览器中。下次访问同一个网站时,由于可以重新利用已经保存的文件,页面显示就会变快。经常访问的网站从第二次起显示得更快,正是浏览器缓存的功劳。
DNS 缓存同样重要。浏览器把域名 (例:`google.com`) 转换成 IP 地址时,会把查询过一次的结果保存到缓存里。下次访问同一个域名时,不必再向 DNS 服务器查询,直接从缓存中取得 IP 地址,因此连接会更快。
缓存都有「有效期」。它由称为 TTL (Time To Live) 的设置决定,规定了缓存要保持多长时间。有效期一过,缓存就会被丢弃,下次访问时重新从服务器取得最新数据。
短链接与缓存的关系也不容忽视。浏览器一旦缓存了 301 重定向,从下次起就不再经过短链接服务的服务器,而是直接访问转发目标。这对用户来说速度更快,但对服务一侧而言,存在无法准确统计点击数的缺点。
有时网站的更新迟迟没有反映出来,原因就在缓存。遇到这种情况,可以用 Ctrl + F5 (Mac 上是 Cmd + Shift + R) 执行忽略缓存的重新加载。