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

相关推荐
酉鬼女又兒12 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
我是一颗柠檬13 天前
【计算机网络全面教学】网络设备与故障排查,从集线器到Wireshark抓包实战Day7(2026年)
网络·计算机网络·wireshark
梁辰兴13 天前
计算机网络基础:报文鉴别
网络·计算机网络·计算机·计算机网络基础·梁辰兴·报文鉴别
JAVA面经实录91713 天前
操作系统面试题
java·服务器·数据库·计算机网络·面试
JAVA面经实录91713 天前
操作系统(面试全覆盖)
java·计算机网络·面试
JAVA面经实录91714 天前
高频算法面试题
java·计算机网络·算法·面试
@insist12314 天前
系统架构设计师-计算机网络基础体系全梳理
计算机网络·系统架构·软考·系统架构设计师·软件水平考试
Yvonne爱编码14 天前
JAVA EE初阶---DAY 2 计算机网络
java·开发语言·计算机网络·算法·java-ee·php
梁辰兴14 天前
计算机网络基础:对称加密密码体制
网络·计算机网络·计算机·对称加密·计算机网络基础·梁辰兴
aramae14 天前
《计算机网络(第5版)》第二章 物理层
服务器·网络·后端·计算机网络