HTTP 中间节点(如 CDN、反向代理、WAF 等)请求头(Headers)
- 1. CDN(内容分发网络)
- 2. 反向代理服务器
- 3. WAF(Web 应用防火墙)
- 4. 其他常见 Headers
- 5. 示例请求头(综合场景)
- 6. 关键作用总结
- 7. 注意事项
当客户端发出的 HTTP 请求经过中间节点(如 CDN、反向代理、WAF 等)时,这些中间节点通常会在请求头(Headers)中添加额外的信息以传递上下文、安全标记或网络路径信息。以下是各层节点可能添加的 典型 Headers 及其作用:
1. CDN(内容分发网络)
CDN 节点通常添加以下 Headers,用于标识客户端来源、缓存状态或地理信息:
X-Forwarded-For
记录客户端的原始 IP 地址(格式:X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip
)。CF-Connecting-IP
(Cloudflare 专用)
直接标识客户端的真实 IP(替代X-Forwarded-For
)。X-Real-IP
反向代理传递的客户端真实 IP(常见于 Nginx)。Via
标明请求经过的 CDN 节点(如Via: 1.1 cloudflare
)。CF-IPCountry
(Cloudflare 专用)
客户端的国家/地区代码(基于 IP 地理位置)。CDN-Cache-Status
缓存命中状态(如HIT
或MISS
)。
2. 反向代理服务器
反向代理(如 Nginx、HAProxy)可能添加的 Headers:
X-Forwarded-Proto
客户端原始请求协议(如http
或https
)。X-Forwarded-Host
客户端原始请求的 Host 头(反向代理可能修改 Host)。X-Forwarded-Port
客户端原始请求的端口。X-Original-URI
原始请求的 URI(若反向代理重写 URL)。X-Request-ID
唯一请求标识符,用于链路追踪。
3. WAF(Web 应用防火墙)
WAF 通常添加安全相关的 Headers,标记检测到的事件或攻击:
X-WAF-Inspection
标记请求是否经过 WAF 检查(如Enabled
)。X-WAF-EVENT
检测到的攻击类型(如SQLi
,XSS
)。X-Block-Reason
请求被拦截的原因(如Blocked by WAF rule 1001
)。X-Threat-Level
威胁等级(如Critical
,Low
)。
4. 其他常见 Headers
True-Client-IP
(Akamai CDN 专用)
客户端真实 IP。Fastly-Client-IP
(Fastly CDN 专用)
类似X-Forwarded-For
。X-Amz-Cf-Id
(AWS CloudFront)
CloudFront 请求的唯一标识符。Server-Timing
服务器处理请求的时间(用于性能监控)。
5. 示例请求头(综合场景)
GET /path HTTP/1.1
Host: example.com
X-Forwarded-For: 203.0.113.1, 198.51.100.2 (CDN → 反向代理)
CF-Connecting-IP: 203.0.113.1
X-Real-IP: 203.0.113.1
X-Forwarded-Proto: https
X-Forwarded-Host: example.com
CF-IPCountry: US
CDN-Cache-Status: HIT
X-WAF-Inspection: Passed
Via: 1.1 cloudflare
6. 关键作用总结
- 客户端身份:通过
X-Forwarded-For
、CF-Connecting-IP
等获取真实 IP。 - 协议与路径:
X-Forwarded-Proto
、X-Forwarded-Host
还原原始请求。 - 安全检测:WAF 的 Headers 标记攻击或拦截原因。
- 诊断与追踪:
Via
、X-Request-ID
用于排查网络路径问题。
7. 注意事项
- Header 名称可能因厂商而异(例如 Cloudflare 使用
CF-*
,Akamai 使用True-Client-IP
)。 - 部分 Headers 可被伪造(如
X-Forwarded-For
),需谨慎信任。 - 实际添加的 Headers 取决于中间节点的配置(例如某些 CDN 默认不开启地理标记)。
建议通过实际抓包或日志分析具体环境中的 Headers。