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-Modified
X-Forwarded-For
与
X-Real-IP
Host
Accept-Encoding
/ Content-Encoding
Referer
与
Origin
Strict-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 加速效果与安全性。