CDN(内容分发网络)在处理 HTTP 请求和响应时,严重依赖 HTTP Header 来实现加速、缓存、安全、路由等功能。Header 信息对 CDN 的行为和效率起着决定性作用。
下面我们详细解析:
CDN 在 接收用户请求 → 判断缓存命中 → 回源请求源站 → 返回响应 过程中,会读取和修改 HTTP Header,实现以下关键功能:
| 功能 | 依赖的 Header |
|---|---|
| 缓存控制 | Cache-Control、Expires、ETag、Last-Modified |
| 内容压缩 | Accept-Encoding、Content-Encoding |
| 路由优化 | Host、X-Forwarded-For、X-Real-IP |
| 协议协商 | Accept、Content-Type |
| 安全防护 | Referer、User-Agent、Origin、自定义
Header |
| 鉴权与防盗链 | Authorization、Token、Cookie、Referer |
| 请求分类(移动/PC) | User-Agent、Accept-Language |
Cache-Control(缓存行为控制)控制 CDN 节点是否缓存、缓存多久、是否需要重新验证。
示例:
Cache-Control: public, max-age=3600
表示 CDN 节点可以缓存内容 1 小时。
常见字段含义:
public:所有缓存设备都可缓存private:只允许终端缓存,不让 CDN 缓存no-store:完全不缓存no-cache:可缓存,但使用前必须向源站验证ETag 与
Last-ModifiedX-Forwarded-For 与
X-Real-IPHostAccept-Encoding / Content-EncodingReferer 与
OriginStrict-Transport-Security:强制使用 HTTPSX-Content-Type-Options:防止 MIME 类型猜测Content-Security-Policy:防 XSS 攻击Access-Control-Allow-*:跨域资源控制(CDN
回源时特别重要)| Header 名称 | 作用 |
|---|---|
Via |
标识请求是否经过 CDN 节点 |
X-Cache |
表示 CDN 是否命中缓存(如 HIT /
MISS) |
X-CDN-Edge |
哪个边缘节点处理了请求 |
X-Forwarded-* |
源 IP、协议、端口等信息 |
HTTP Header 是 CDN 决策缓存、转发、安全验证等功能的“指令载体”,合理使用 Header 可以大幅提升 CDN 加速效果与安全性。