cdn下载加速原理免费加速浏览器


​之前在用github做图床时由于在国内github的访问速度很慢,所以用了jsdeliverCDN来加速图片的访问(/weixin_/article/details/),使用也很简单,只需要把域名地址替换一下就行。

GitHub离国内就近的服务器是在新加坡,距离我这有公里,也就是说,访问GitHub上的一张图片,一个数据包就要走公里这么远!

而且,互联网从逻辑上看是一张大网,但实际上是由许多小网络组成的,每个网络络中还存在许多的路由器、网关,数据每经过一个节点,都要处理一下,在二层、三层解析转发,这也会消耗一定的时间,带来延迟。

把这些因素再放到全球来看,地理距离、运营商网络、路由转发的影响就会成倍增加,也就是访问GitHub慢的一个原因。

很简单,ping后,就会显示出服务器的ip地址,然后把ip地址用百度搜索,就能查到该服务器是在哪里的了。

在我加上jsdelivrCDN后,GitHub的图片就会被缓存到CDN服务器上,而深圳正好就有一台jsdelivr的CDN服务器。

这样我访问GitHub图片不用再大老远跑去新加波的服务器,而是遵循就近访问原则,直接访问离深圳的这台CDN服务器,大大加快了访问速度。

CDN的全称是ContentDeliveryNetwork,中文名叫内容分发网络。它是解决由于长距离而网络访问速度慢的问题。

简单来说,CDN将内容资源分发到位于多个地理位置机房中的服务器上,这样我们在访问内容资源的时候,不用访问源服务器。

而是直接访问离我们最近的CDN节点,这样一来就省去了长途跋涉的时间成本,从而实现了网络加速。

不过,动态资源如果也想被缓存加速,就要使用动态CDN,其中一种方式就是将数据的逻辑计算放在CDN节点来做,这种方式就被称为边缘计算。

大部分CDN加速策略采用的是「拉模式」,当用户就近访问的CDN节点没有缓存请求的数据时,CDN会主动从源服务器下载数据,并更新到这个CDN节点的缓存中。

如果想要把资源在还没有用户访问前缓存到CDN节点,则可以采用「推模式」,这种方式也叫CDN预热。

通过CDN服务提供的API接口,把需要预热的资源地址和需要预热的区域等信息提交上去,CDN收到后,就会触发这些区域的CDN节点进行回源来实现资源预热。

找到离用户最近的CDN节点是由CDN的**全局负载均衡器(GlobalSeverLoadBalance,GSLB)**负责的。

那GSLB是在什么时候起作用的呢?在回答这个问题前,我们先来看看在没有CDN的情况下,访问域名时发生的事情。

比如,当我们在浏览器输入域名后,在本地host文件找不到域名时,客户端就会访问本地DNS服务器。

会在这个DNS服务器上,设置一个CNAME别名,指向另外一个域名,返回给本地DNS服务器。

接着继续解析该域名,这个时候访问的就是这台CDN专用的DNS服务器,在这个服务器上,又会设置一个CNAME,指向另外一个域名,这次指向的就是CDN的GSLB。

接着,本地DNS服务器去请求CDN的GSLB的域名,GSLB就会为用户选择一台合适的CDN节点提供服务,选择的依据主要有以下几点:

GSLB会基于以上的条件进行综合分析后,找出一台最合适的CDN节点,并返回该CDN节点的IP地址给本地DNS服务器,然后本地DNS服务器缓存该IP地址,并将IP返回给客户端,客户端去访问这个CDN节点,下载资源。

简单的说CDN就是在访问者和最终存储资源服务器之间的一个桥梁,CDN将一些资源存储,供访问者快速访问,不用去最终存储资源的服务器那里获取资源(起一个缓存作用)。同时CDN有很多服务器,这些服务器会根据访问者ip的位置自动选择离访问者最近的CDN服务器,以确保访问速度。

无聊的一个人啊:来来来,楼主拿去不谢:远程调试APP,发布网站到公网演示,远程访问内网服务/Aoqun/article/details/



1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。

2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。