响应头总览是什么
响应头位于状态行之后、响应体之前,描述响应自身与内容的元数据,以及缓存、安全与认证策略。它们大致分为四类:描述内容表示的、控制缓存的、指示后续动作的、声明安全策略的。读懂响应头的能力直接决定了排障效率——同一个状态码在不同头部组合下含义可能完全不同,例如同样是成功码,带缓存指令与不带缓存指令的下一次行为截然相反。
基本信息
| 位置 | 状态行之后、响应体之前 |
|---|---|
| 作用 | 描述响应上下文、内容元数据与策略 |
| 常见分类 | 内容表示、缓存与校验、后续动作、安全策略 |
| 新版差异 | 字段名统一小写并压缩传输 |
| 读取方式 | 用只取响应头的方式请求,避免下载完整内容 |
典型使用场景
- 缓存排障:核对缓存指令与校验值是否如预期下发
- 接口联调:确认内容类型与字符集,避免解析与乱码问题
- 安全审计:检查加密强制策略与内容安全策略是否配置
- 跳转排查:确认跳转目标是否正确且保留了路径
- 限流与降级:读取重试等待时间并据此退避
只看响应头
只看响应头
curl -sI https://www.example.com/ # 只取响应头,不下载内容
curl -sI https://www.example.com/ | grep -iE 'cache-control|etag|age' # 缓存相关
curl -sI https://www.example.com/ | grep -iE 'content-type|content-length' # 内容表示相关高频响应头速查
| 字段 | 作用 |
|---|---|
| 内容类型与长度 | 内容的格式与体积 |
| 缓存指令与校验值 | 决定能否复用缓存、何时回源验证 |
| 跳转目标 | 重定向与新建资源的地址 |
| 写入状态 | 向客户端下发会话状态 |
| 认证挑战与重试等待 | 要求认证的提示与重试节奏 |
| 安全策略类 | 加密强制、内容安全、类型嗅探限制等 |
排查要点
- 先确认响应来自哪一层:网关、边缘节点还是源站,各层头部的组合可能不同
- 缓存相关头部要连同年龄字段一起看,才能判断内容在中间节点停留了多久
- 安全策略类头部一旦下发错误很难回滚,改动前应当先在灰度域名验证
响应头分类不只是为了让文档好读:缓存类头部决定后续请求是否真的发出,安全类头部由客户端强制执行,描述内容的头部影响解析。排障时按类别逐个核对,比漫无目的地翻日志快得多。
安全策略类头部配置错误的影响面很大:设置过严会让页面资源被浏览器拒绝加载,设置过松又形同虚设,变更前应当先在测试域名上验证并保留回滚方案。