网站资源类型及其加速原理

静态资源

静态内容是指在不同请求中访问到的数据都相同的静态文件。例如:图片、视频、网站中的文件(html、css、js)、软件安装包、apk文件、压缩包文件等。

CDN加速的本质是缓存加速。将服务器上存储的静态内容缓存在CDN节点上,当访问这些静态内容时,无需访问服务器源站,就近访问CDN节点即可获取相同内容。从而达到加速的效果,同时减轻服务器源站的压力。

动态资源

动态内容是指在不同请求中访问到的数据不相同的动态内容。例如:网站中的文件(asp、jsp、php、perl、cgi)、API接口、数据库交互请求等。

当访问这些动态内容时,每次都需要访问(源)服务器,由服务器动态生成实时的数据并返回给您。因此CDN的缓存加速不适用于加速动态内容,CDN无法缓存实时变化的动态内容。对于动态内容请求,CDN节点只能转发回服务器源站,没有加速效果。

如果网站或App应用有较多动态内容,例如需要对各种API接口进行加速,则需要使用全站加速。全站加速能同时加速动态和静态内容,加速方式如下:
静态内容使用CDN加速。
动态内容通过路由优化、传输优化等动态加速技术以最快的速度访问服务器源站获取数据。从而达到全站加速的效果。

网络加速方式

  • 缩短与服务器间的物理距离
  • 把长距离公网传输改为稳定的内网传输

技术方案

针对缩短与服务器间的物理距离,目前主流的方案就是静态CDN服务,一般解决的就是静态资源的加速,相信看本篇博客的同学应该都不陌生,这里不再赘述。针对把长距离公网传输改为稳定的内网传输的加速方案,大致可以归类为动态内容加速全球应用加速Anycast三种。

这里提到的“Anycast”就是任播技术,其实它在静态CDN也会应用到,用于定位就近CDN节点。还会应用在负载均衡上。

关于动态资源加速的方式原理大家可以参考这篇文章,网络加速原理与方法,讲得挺详细了。