前端项目中CDN的一些问题【性能优化篇】

1. CDN的概念

CDN(Content Delivery NetWork,内容分发网络),是指利用最靠近每位用户的服务区,更快的将资源发送给用户。
前端项目中CDN的一些问题【性能优化篇】_第1张图片

  • 提高用户的访问速度
  • 减轻服务器压力
  • 提高网站的稳定性和安全性

2. CDN的作用

CDN一般用来托管Web资源(文本、图片和视频等),可供下载的资源,应用程序。使用CDN来加速这些资源的访问。

  1. 性能方面:
    • 用户可以更快的请求资源
    • 资源请求的任务分配给了CDN,减轻了服务器的负载
  2. 安全方面:
    • 防御DDOS:通过监控分析异常流量,限制其请求频率
    • MITM: 从源服务器到CDN节点到ISP,全链路HTTPS通信

中间人攻击(Man-in-the-middle attack,MitM)会在消息发出方和接收方之间拦截双方通讯。举例来说,Wi-Fi 路由器就可以被破解用来进行中间人攻击。

3. CDN的原理

3.1 用户未使用CDN缓存资源的过程

  1. 浏览器通过DNS对域名进行解析,得到此域名的IP地址
  2. 浏览器根据IP地址,向域名的主机发送请求数据
  3. 服务器向浏览器返回响应数据

3.2 用户使用CDN缓存的过程

  1. 本地DNS系统解析请求的URL,发现URL对应的是一个CDN专用的DNS服务器,DNS系统会将域名解析权交给CNAME指向的CDN专用的DNS服务器
  2. CDN专用DNS服务器将CDN的全局负载均衡设备IP地址返回给用户
  3. 用户向CDN的全局负载均衡设备发起数据请求
  4. CDN全局负载均衡设备根据用户的IP地址,以及用户请求的URL,选择距离用户最近的设备,告诉用户向这台设备发送请求
  5. 区域负载均衡设备选择一台合适的缓存服务器来提供服务,将该缓存服务器的IP地址返回给全局负载均衡设备
  6. 全局负载均衡设备吧服务器的IP返回给用户
  7. 用户向缓存服务器发起请求,缓存服务器返回响应请求。
    前端项目中CDN的一些问题【性能优化篇】_第2张图片

4. CDN为什么快?

用户访问 CDN 资源时,比如一个图片资源的URL,会先对URL进行域名解析,解析的过程中发现URL是CDN专用DNS服务器,会将DNS解释权交给CNAME指向的CDN专用的DNS服务器。然后找到CDN全局负载均衡系统,然后全局负载均衡系统选择距离我们最近的设备,告诉我们向这台服务器发送请求,区域负载均衡器选择一台合适的缓存服务器来缓存请求,

参考文献

https://cloud.tencent.com/developer/article/1644270
https://www.yuque.com/cuggz/interview/lph6i8#40cbae254f99a3f15afff95e3993b6eb

你可能感兴趣的:(面试题,前端,性能优化)