我的理解CDN就像京东在全国都设立了子仓库,当我们在网上下单某件商品,他会优先在最近的仓库出库。
CDN全称是内容分发网络,将网站的资源存放在最接近用户的网络边缘,使用户能够就近获取资源,解决带宽小、访问量大、网点分布不均等问题,提高用户访问网站的响应速度。
工作流程
1.用户输入域名
2.浏览器将请求发送到本地DNS服务器
3.本地DNS服务器将请求发送到根服务器
4.根服务器会分配最佳的节点IP
5.浏览器会向最佳节点IP发送请求,如果有该资源的缓存,则直接返回
6.如果最佳节点IP没有该资源则向源站发送请求,将资源依次返回
优点
1.解决跨地域、跨运营商访问的问题,提高访问速度,可以直接在最近的仓库发货,不考虑跨省、更换交通工具等方式;
2.对源站起到分流作用,就是总的仓库不需要发送今天的全部出货,可以交由子仓库进行发货;
3.同一个域名同时下载并发连接数个数有限制,CDN可以避开这些限制,每个仓库最多同时发送四个快递,CDN之后买八个快递可能是从附近三四个仓库发的;
缺点
1.CDN不能通用,有些地区可能屏蔽了一些CDN或者IP
2.安全性可能不够好,信息在发送过程可能被截取了
3.访问量小的网站不用CDN可能访问速度提升的不明显
不该用CDN的情况:
1.内部网络应用,不与外部Internet连接;
2.安全和隐私性较强的网站,银行这样的;
3.对某些CDN的域名或者IP地址限制访问。
何时使用CDN
流量高的网站
在实际中通过JavaScript搜集用户分别使用CDN文件和本地服务器文件时加载页面的速度,以决定一段时间内是选择CDN还是本地文件。