【计算机网络】CDN

可以把 CDN 理解成:把服务器里的静态资源提前放到离用户更近的地方,让用户就近访问。

举个例子:

你的网站服务器在北京,用户在广州。

如果没有 CDN:

text 复制代码
广州用户 → 北京服务器 → 返回图片/CSS/视频

距离远,网络链路长,所以访问慢。

如果有 CDN:

text 复制代码
广州用户 → 广州附近的 CDN 节点 → 返回图片/CSS/视频

用户不需要每次都跑到北京服务器拿资源,而是从附近 CDN 节点拿,所以更快。


CDN 主要解决什么问题?

解决的是:

用户离源服务器太远,访问资源慢的问题。

CDN 会把资源分发到各地的 边缘节点

边缘节点可以理解成 CDN 公司部署在各个城市、地区的小型缓存服务器。


静态资源为什么适合 CDN?

静态资源一般变化少,比如:

text 复制代码
图片
视频
音频
CSS 文件
JS 文件
字体文件

这些文件发布之后通常不会频繁变化。

所以 CDN 可以放心缓存很久。

比如用户请求:

text 复制代码
https://example.com/logo.png

第一次请求时,CDN 节点没有这个图片,就会去源服务器拿:

text 复制代码
用户 → CDN 节点 → 源服务器

CDN 拿到后,会保存一份。

之后附近其他用户再访问这个图片:

text 复制代码
用户 → CDN 节点

CDN 直接返回缓存,不需要再访问源服务器。


动态资源为什么不适合长期缓存?

动态资源是经常变化的内容,比如:

text 复制代码
用户个人信息
订单信息
购物车数据
评论列表
登录状态

这些数据可能每个人看到的不一样,或者随时变化。

比如你访问:

text 复制代码
/user/profile

这个接口返回的是你的个人信息。

如果 CDN 把它长期缓存了,可能会出现严重问题:

text 复制代码
A 用户看到 B 用户的数据
或者用户看到旧数据

所以动态资源一般不长期缓存。

当然,动态资源不是完全不能用 CDN,只是缓存策略要更谨慎,比如:

text 复制代码
缓存几秒钟
不缓存
每次回源验证
按用户区分缓存

CDN 的完整流程简单说

第一次访问:

text 复制代码
用户请求资源
↓
DNS/CDN 调度系统判断用户位置
↓
分配一个离用户近的 CDN 节点
↓
CDN 节点发现自己没有缓存
↓
回源服务器获取资源
↓
CDN 节点缓存一份
↓
返回给用户

第二次附近用户访问同一个资源:

text 复制代码
用户请求资源
↓
CDN 分配附近节点
↓
节点发现有缓存
↓
直接返回资源

这就叫 命中缓存


一句话总结

CDN 就是:

把图片、视频、CSS、JS 等静态资源缓存到离用户更近的服务器上,让用户就近获取,减少访问源服务器的次数,从而提高访问速度、降低服务器压力。

相关推荐
上岸社社长7 小时前
2027届国网计算机类备考指南:时间线、考纲与复习规划(附资料)
计算机网络
四代水门7 小时前
三、计算机网络
服务器·计算机网络·asp.net
hxhy001 天前
计算机网络
计算机网络
llllll1521 天前
深入浅出计算机网络:从 TCP 可靠传输到 DNS 解析核心原理
网络协议·tcp/ip·计算机网络
只吃不吃香菜1 天前
Windows 下基于 YAML 规则的指定域名分流:以哔哩哔哩为例
网络·网络协议·计算机网络·网络安全·代理模式
ZJH__GO1 天前
通信开发--接收浏览器网络连接
java·服务器·网络·计算机网络
我爱cope2 天前
【计算机网络 | 数据链路层2:差错检测与纠正:奇偶校验、校验和、CRC 分别怎么工作?】
网络·学习·计算机网络
雾时之林2 天前
Linux---计算机网络常见面试题
linux·运维·计算机网络
是未才2 天前
从输入 URL 到页面返回:DNS、路由、TLS 与 HTTP 完整链路
java·后端·计算机网络
charliejohn2 天前
计算机考研 408 网络 电子邮件 概念及例题
网络·网络协议·计算机网络·考研