什么是缓存?| 如何缓存网站?

缓存存储文件的副本,以便在需要的地方更快地交付它们。

Share facebook icon linkedin icon twitter icon email icon

什么是缓存?

学习目标

阅读本文后,您将能够:

  • 阐述缓存的运作方式
  • 了解缓存内容的方式和时间
  • 了解不同种类的缓存
  • 了解 CDN 如何缓存内容

什么是缓存?

缓存是将文件副本存储在缓存或临时存储位置中的过程,以便可以更快地访问它们。从技术上讲,缓存是文件或数据副本的任何临时存储位置,但通常该术语用于指代 Internet 技术。DNS 服务器缓存 DNS 记录以加快查找速度,CDN 服务器缓存内容以缩短延迟,Web 浏览器则缓存 HTML文件、JavaScript 和图像以更快加载网站。

要了解缓存的工作方式,可以想一下现实世界中食品和其他物资的储藏。当探险家罗尔德·阿蒙森在 1912 年从南极之旅返回时,他和手下依靠他们在沿途储藏的食物为生。这比旅途之中等待大本营运送物资要有效得多。Internet 上的缓存具有类似的用途;它们临时存储用户在网络上“旅行”所需的“物资”或内容。

什么是 CDN 缓存?

CDN(内容交付网络)将图像、视频或网页等内容缓存在比源站服务器更靠近最终用户的代理服务器中。(代理服务器是一种从客户端接收请求并将其传递给其他服务器的服务器。)由于这些服务器距离发出请求的用户较近,因此 CDN 能够更快地交付内容。

Content Delivery Network (CDN)

CDN 可以比作连锁杂货店:购物者不必前往可能数百英里远种植有粮食的农场,而是去当地的杂货店,尽管仍然需要走些路,但距离要近得多。由于杂货店储藏来自远方农场的食品,因此去杂货店购买只需花费几分钟而不是几天。同样,CDN 缓存可以“储藏”Internet 上显示的内容,让网页加载速度变得更快。

如何缓存内容?

当用户向使用 CDN 的网站请求内容时,CDN 从源站服务器获取该内容,然后保存该内容的副本以便为将来的请求服务。只要有用户继续请求,缓存的内容就会保留在 CDN 缓存中。

什么是缓存命中?什么是缓存未命中?

所谓缓存命中,是指客户端设备向缓存请求内容,并且缓存中已保存有该内容。如果缓存中没有请求的内容,则称为缓存未命中。如果发生缓存未命中,CDN 服务器会将请求传递到源站服务器,然后在源站服务器做出响应后缓存内容,以便后续请求能够产生缓存命中。

CDN 缓存服务器位于何处?

CDN 缓存服务器位于全球各地的数据中心中。Cloudflare 的 CDN 服务器遍布全球 200 个城市,以尽可能缩短与访问内容的最终用户的距离。CDN 服务器所在的位置也称为数据中心。

缓存的数据在 CDN 服务器中保留多久时间?

当网站以所请求内容响应 CDN 服务器时,它们会在内容中附加信息,告知服务器应将其存储多久时间。此信息存储在响应中称为 HTTP 标头的部分中,它会指定要将内容缓存几小时几分几秒。这称为生存时间(TTL)。TTL 过期后,缓存会删除内容。如果内容已有一段时间未被请求过,或者 CDN 客户手动清除了某些内容,一些 CDN 也会提前从缓存中清除文件。

其他种类的缓存如何工作?

Web 浏览器缓存发生在浏览器将网站上的文件副本保存在用户设备的硬盘驱动器上时。缓存网页后,浏览器仅需要加载新页面或更新的页面;这样一来,即使 Internet 连接速度较慢,浏览器也能快速交付页面。浏览器会保留这些文件,直到它们的 TTL 过期或硬盘驱动器缓存已满为止。如有需要,用户也可以清除其浏览器缓存。

DNS 缓存在 DNS 服务器上进行。服务器将近期的 DNS 查找存储在其缓存中,因而无需查询名称服务器,便能立即使用域的 IP 地址进行回复。

搜索引擎可以缓存经常出现在搜索结果中的网页;这样,即使用户尝试访问的网站暂时关闭或无法响应,它们也能回答用户查询。

Cloudflare 如何使用缓存?

Cloudflare 提供的 CDN 拥有分散于世界各地的 200 个 PoP。Cloudflare 提供免费 CDN 缓存服务,而付费 CDN 客户还能够自定义其内容的缓存方式。使用的网络采用 Anycast;也就是说,同样的内容可以从这些 PoP 中的任何一个进行交付。不论是伦敦用户还是悉尼用户,都可以查看从几英里外 CDN 服务器加载的相同内容。