Fork me on GitHub

前端性能优化与原理实践之【CDN的缓存与回源机制】

前端性能优化之CDN的缓存与回源机制。

一、什么是 CDN?

CDN 的全称是Content Delivery Network,即内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

CDN 有两个核心的点:

  • 缓存:把总服务器的资源放到 CDN 服务器上的过程称为 CDN 缓存。
  • 回源:本地 CDN 服务器资源已失效,需要重新向总服务器进行请求的过程称为回源。

二、为什么要用 CDN?

在带宽流量非常大、网络带宽小的情况下,需要快速响应用户的请求,从而将部分的静态资源,存放在 CDN 服务器上,当用户去请求资源的时候,经过 CDN ,如果 CDN 有存储,会直接返回给用户资源,大大加快了资源响应的速度。

三、CDN 的前端性能优化

CDN 的使用,经常来存放静态资源,原因有以下几个:

  • 存放静态的资源(CSS、JS、图片等),而不是动态生成的。 —— 动态生成的页面需要实时的在总服务器进行计算,CDN 只相当于一个仓库。
  • 非纯静态资源也是不能放的,因为需要服务器在页面之外作额外计算的 HTML 页面,需要一系列的认证,页面和其他之间是有关联性的。

四、CDN 细节优化

如何优化 CDN 也是一个技术难题,因为往往 CDN 服务器的选取和性能优化、结点选取有很大关系。

往往我们选择 CDN 和 主服务器是在不同域名下的。

因为同一域名会携带 COOKIE,尽管是不必要的请求,也会带着 Cookie 跑,如果这个网站足够的庞大,流量足够的多,对网站的性能大打折扣。