CDN 内容分发网络

定义

CDN 全称叫做 Content Delivery Network,一般我们所说的CDN加速,一般是指网站加速或者用户下载资源加速。

比如当我们在访问 https://www.taobao.com 的时候,我们认为 DNS(域名解析)服务器会淘宝网的服务器 ip 地址解析出来返回给我们,然后我们本地与淘宝服务器建立 tcp 连接,开始发起 http 请求拉取网络资源。

但是实际情况并非如此,当淘宝的服务器接收到我们的域名解析请求时,会拿到我们本地的 ip 地址,然后经过分析,它会把离我们最近的那台静态服务器的 ip 地址返回给我们,让我们去和最近的那台服务器建立连接,然后从它上面拉取资源。这个过程叫做 DNS 重定向,全国各地的静态服务器在一起组成了内容分发网络,也就是 CDN。

CDN 缓解了源服务器的访问压力,也缩短了我们获取静态资源的路径,是现代 web 应用中不可不用的优化手段。

CDN 缓存

CDN 处于浏览器和源服务器之间,我们都知道浏览器有自己的缓存,CDN 的缓存策略和浏览器很像。比如当浏览器访问一个 js 文件时,本地没有缓存,就回去请求 CDN 服务器,CDN 服务器上如果有且没过期,就直接返回。如果没有就会去请求源服务器,拉到本地之后,返回给浏览器,然后自己再缓存一份。下次其他客户端来请求的时候,就能直接提供了

CDN 内容分发网络