Skip to content

CDN

CDN 的任务是实际上缩短物理距离,目标是提高站点渲染速度和性能。

优点

  • CDN 节点解决了 跨运营商 和 跨地域 访问的问题,访问延时大大降低;
  • 大部分请求在 CDN 边缘节点完成,CDN 起到了分流作用,减轻了源站的负载。

缺点

当网站更新时,如果 CDN 节点上数据没有及时更新,即便用户再浏览器使用 Ctrl + F5 的方式使浏览器端的缓存失效,也会因为 CDN 边缘节点没有同步最新数据而导致用户访问异常

缓存

通过 http 响应头中的Cache-control: max-age 的字段来设置 CDN 边缘节点数据缓存时间。

HTTP请求流程:

  1. 用户在浏览器输入要访问的网站域名,向本地 DNS 发起域名解析请求。
  2. 域名解析的请求被发往网站授权 DNS 服务器。
  3. 网站 DNS 服务器解析发现域名已经 CNAME 到了 www.example.com.c.cdnhwc1.com。
  4. 请求被指向 CDN 服务。
  5. CDN 对域名进行智能解析,将响应速度最快的 CDN 节点 IP 地址返回给本地 DNS。
  6. 取响应速度最快的 CDN 节点 IP 地址。
  7. 浏览器在得到速度最快节点的 IP 地址以后,向 CDN 节点发出访问请求。

此时判断是否有缓存,缓存是否有效。如果有效

  1. CDN 节点将用户所需资源返回给用户。

无缓存或者缓存失效

  1. CDN 节点回源站拉取用户所需资源。
  2. 将回源拉取的资源缓存至节点。
  3. 将用户所需资源返回给用户。