影响网页性能的CDN是什么,你知道吗?

       由于进入了步入了这一行业,就发现我们经常听说的CDN是边缘计算里的一部分。而对于CDN的认识仅仅只知道它中文叫做内容分发网络。那么CDN和网页性能有什么关系?有关联性的,又是如何造成影响?

       我们知道,当我们使用域名访问某一个网站时,实际上就是将请求包(以Http请求为例)通过网络传输给某台服务器,比如访问“www.baidu.com”时,首先,解析出该域名所对应的IP地址(DNS域名解析)。然后,将Http请求包通过网络路由到IP地址所对应的服务器,我们通常说“服务器的IP地址”,这其实不太准确,IP地址是和网卡绑定的,一个服务器可以有多个网卡,也就是可能有多个IP地址。所以域名解析是接到网站首先要做的事情。解析域名分为两种:将一个域名解析为一个IP地址;将一个域名解析为另外一个域名。
影响网页性能的CDN是什么
       其实,解析思路不难,我们在域名服务商购买了一个域名之后,需要去映射一个IP地址,可以用Map来表示这个关系(域名也就是我们说的IP)。同时,我们也可以给某个域名取一个别名,比如“www.baidu.com”取一个别名“test.baidu.com”,这种关系也可以用Map来表示(域名:IP的别名)。这里的别名专业一点叫做CNAME,相信大家对这个词有点眼熟,它就是这个意思。而域名解析,实际上就是解析出指定域名所对应的IP地址,或者该域名的一个CNAME。域名解析是由DNS系统来负责的,DNS服务接受外部请求,从请求里提取域名,如果这个域名对应的是IP地址,则返回这个IP地址,如果这个域名对应的是CNAME,则继续查找CNAME域名的IP地址,然后将该地址返回给请求发送者。请求发送者拿到IP地址之后,完成真正的请求调用。
       首先CDN是为了改善互联网的服务质量的,通俗一点说其实就是提高访问速度。假设百度网站现在只有一台服务器,并且现在有一个在上海访问百度页面,如果该服务器也在上海,通常来说访问比较快,如果该服务器在拉萨,那么相对而言访问就比较慢了。那么这个问题的根本原因是网络传输是依赖于网线的,网线越长,时间肯定就越久。那么怎么解决这个问题呢?其实思路很简单,百度在全国各地都部署一模一样的服务器就行了,专业一点叫冗余。
       思路很简单,但实现还是比较麻烦的,服务器上的资源分为两种:静态资源与动态资源。静态资源:这种资源通常是很少变动的,比如图片,视频,css,javascript等等动态资源:这种资源不同用户不同时刻访问通常是不一样的,比如ftl,jsp等等。
CDN的目的
       百度在全国各地都部署服务器,如果说每个服务器上都有相同的动态资源,那么可能还需要配置相应的数据库。因为,动态资源所记录的信息通常会存储在数据库中,那么这就涉及到了数据同步等等问题,这会导致成本很高,这种做法其实就是集群,而目前来说集群架构通常是三地五中心,所以,不是说全国多地集群不可能,主要是成本太高。有没有成本比较低的方式呢?回答肯定是有的,就是在每个服务器上只部署静态资源,静态资源通常不涉及到数据库,所以成本也比较低,而且也能提高用户的访问速度。
       总的来说,要想干好这件事并不难,难就难在服务器上。除此之外,还需要注意在有CNAME的情况下,我们可以发现,CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键。