【计算机网络】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 等静态资源缓存到离用户更近的服务器上,让用户就近获取,减少访问源服务器的次数,从而提高访问速度、降低服务器压力。

相关推荐
我爱cope2 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络
kkkkkkkkkk_Z7 小时前
学嵌入式和Linux应用编程|学习日记:计算机网络基础
linux·学习·计算机网络
zyf1044169 小时前
暑期实践日志 Day46:复盘第六章,规整对应实践成果
学习·计算机网络·剪辑·暑期实践·课题任务
啊阿狸不会拉杆10 小时前
《计算机网络-自顶向下方法》3.5 面向连接的运输:TCP 读书笔记
网络·tcp/ip·计算机网络
啊阿狸不会拉杆16 小时前
《计算机网络-自顶向下方法》3.6 拥塞控制原理 读书笔记
计算机网络·智能路由器·php
啊阿狸不会拉杆17 小时前
《计算机网络-自顶向下方法》3.8 运输层功能的演化
计算机网络·运输层
啊阿狸不会拉杆1 天前
《计算机网络-自顶向下方法》2.5 P2P 文件分发 读书笔记
计算机网络·wireshark·asp.net·p2p
白狐_7981 天前
408 计算机网络|TCP 可靠传输:ACK、重传、RTT、RTO
网络·tcp/ip·计算机网络
2501_915106321 天前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
啊阿狸不会拉杆1 天前
《计算机网络-自顶向下方法》3.3 无连接运输:UDP 读书笔记
网络协议·计算机网络·udp