面试绕不过去的一个问题,“ 有做过前端的性能优化吗? ”
这时候脑海中会机械性的答复你:减少http请求次数、使用cdn 、seo优化......
但是使用cdn优化是怎么一回事呢?
曾经看过一个很形象的例子,分享给大家:
在淘宝购物
我们在淘宝购物,大部分个人卖家只是在一个地方发货,江浙沪以外的地方好像收货都比较慢。
在京东购物
而我们在京东上买自营产品的话,它会根据我们的收货地点,在全国范围内找离我们最近、送达最快的仓库,不管我们在江浙沪,还是新疆西藏内蒙古,我们的收货时间都会大大减少。
京东的物流体系就类似于 CDN。
CDN的核心
cdn的核心点有两个:1.缓存,2.回源
缓存: 将从根服务器请求来的资源按要求缓存。
回源: 当有用户访问某个资源的时候,如果被解析到的那个 CDN 节点没有缓存响应的内容,或者是缓存已经到期,就会回源站去获取。没有人访问,CDN 节点不会主动去源站请求资源。
加速: 默认会对资源文件进行压缩,减少文件体积,提高了相应的速度。
CDN 的关键技术主要有内容存储和分发技术。
“分布式存储”:将中心平台的内容分发到各地的边缘服务器,使用户能够就近获取所需内容,降低网络用时,提高用户访问响应速度和命中率。利用了索引、缓存等技术。
“负载均衡”:对所有发送的请求进行访问调度,确定提供给用户的最终实际访问地址。
“内容管理”:负责对存储内容的监管、数据分析等。
静态资源本身具有访问频率高、承接流量大的特点,因此静态资源加载速度始终是前端性能的一个非常关键的指标。
CDN 是静态资源提速的重要手段。