你有没有想过:一个放在美国服务器上的网页,为什么你在国内打开也只要几百毫秒?要是数据真的每次都横跨太平洋跑个来回,早该超时了。秘密就在于 CDN——内容分发网络。

把货仓开到你家楼下

传统模式是「全世界的用户都去同一个中心仓库取货」。仓库离你一万公里,再快的网也得跑路。CDN 的思路是:在全世界建无数个小仓库存副本,谁访问,就从离他最近的小仓库发货。

技术上,CDN 把你的静态资源——图片、视频、CSS、JS 文件——复制缓存到分布在全球的「边缘节点」上。用户请求到达时,DNS 会把域名解析到地理上最近的那个节点,数据走本地网络就回来了,不用回源站。

三个核心动作

缓存:节点第一次收到资源时,会从源站拉一份存下来,之后一段时间内的请求都直接用它。这是加速的根本。

回源:当节点上没缓存、或者缓存过期了,它才去真正的源服务器取一次,再顺手存好。所以回源越少,整体越快、源站压力越小。

刷新:你更新了网站图片,但节点上还存着旧的怎么办?这时要主动「刷新缓存」,告诉节点「这东西变了,下次别用旧的」。很多 CDN 后台都有一键刷新,或者靠给文件加版本号(如 app.v2.js)来绕过旧缓存。

它解决的不仅是速度

除了快,CDN 还扛得住突发流量。没有 CDN 时,一次热点事件带来的流量全砸在源站,服务器很容易被打垮;有 CDN 时,流量被分散到无数边缘节点,源站只是稳稳地提供源文件。

另外,用户离源站远、中间链路质量差时,直接回源会丢包卡顿;走 CDN 后,最后一公里是高质量节点网络,体验立刻不同。

不是所有东西都适合

CDN 主要加速「大家都要、且不常变」的静态内容。需要实时计算、和个人账号强绑定的动态数据(比如你的余额、私信列表),还是得回源站查,CDN 帮不上忙。所以实际架构里,静态走 CDN、动态走源,两者配合才是完整方案。

一句话收尾

CDN 没有发明新协议,它只是把「就近取货」这个朴素的物流逻辑搬到了互联网上。理解了边缘节点、缓存和回源这三件事,你就看懂了现代网站为什么能把内容送到地球任何一个角落都那么快。