CDN 明白了明白了

105 阅读4分钟

CDN 相关知识

前言

不知不觉已经11月月底了,又水了一个月,这个月有稍微看了点读书,其中学了《图解HTTP》这本书,让我对整个HTTP协议有了更加深入的理解,在书本中也记录了很多知识点和笔记,之后会专门写一篇文章 《图解HTTP》知识地图 现在主要是分享的是关于CDN的知识。

今年毕业刚进入第一家公司时,那时候我就经常听见老大和网络管理员(之后简称网管)说到这个词。

那时候客户反馈说:“我们家的小程序(公众号)怎么这么卡啊,打开这么慢!”

网管说:已经上了CDN加速了!

我心里会想:“CDN是啥... 这玩意儿还会加速?”

举个栗子

服务器

我这台服务器位置位于上海,我人位于福建福州,只要我在浏览器输入www.jimmyxuexue.com那么这个网络请求就会一路翻山越岭,直到到上海这个源服务器,最后这个源服务器再将我需要的一些内容,如html、css、javascript再翻山越岭返回给我的浏览器,最终呈现出一个页面。

注意当在浏览器中输入一串url之后请求并不是直接一步到位就到源服务器的,会先经过一个 DNS 域名解析,解析到服务器的IP地址,再经过一层层的网络路由,距离越远经过的路由也就会越来越多,就会出现请求失败,丢包等等其他情况发生,这个也就是之前前言中用户反馈的 卡!!!

CDN的出现

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

以上的文案是从百度百科中直接摘抄进入的,最重要的一点就是 CDN 是 内容分发网络 ,简单的说就是有专门一个组织维护着一大堆的各地边缘服务器,当我们使用了CDN之后,我们的源服务器就可以将内容上传至CDN服务器(代理服务器,后文统一使用代理服务器这个词),注意并不是一台,而是周围会有很多台代理服务器。会直接替代源服务器做一些基础的操作。

再来一个栗子

比如我的网站已经部署了 CDN 了,现在我还是在浏览器中输入www.jimmyxuexue.com/ 因为部署了代理服务器的缘故,现在我的请求会优先进入CDN代理服务器上,代理服务器直接替源服务器进行返回。这个过程反应速度就会提升非常之多。同时这个过程也是更省流量的,因为距离进了,消耗的带宽和流量自然也是减少了。

其他内容

CDN 上存储的内容是否会过期?CDN和源服务器是怎么进行通信的?

其实CDN代理服务器和源服务器之间的通信也是通过 HTTP 协议进行通信,通过HTTP的请求头可以很好的进行 协商缓存 如使用 ETag If-None-Match等等一系列的cache-control报文进行协商。

具体的一系列协商的报文字段会在 《图解HTTP》知识地图 这篇中具体讲解,在这里讲就有点离题啦~

总结

CDN 我所知道的内容就是这些,感觉应该可以跟面试官稍微掰扯两句了,不至于自己哑口无言。至于如何部署这个CDN,很遗憾我还不会,这个知识稍微偏后端和运维一点了,之后会慢慢补足的。加油!