203 是什么
203 Non-Authoritative Information 表示响应里的元信息不是来自源站的权威副本,而是经过代理转换或整合后的结果(RFC 9110 §15.3.4,早期版本曾叫 Partial Information)。典型成因是缓存代理裁剪头部、去掉私有字段、补上标准头,或对内容做过重写。状态码本身仍是 2xx,浏览器按成功处理,因此它是「内容可能被静默改写」的信号。
基本信息
| 名称 | 203 Non-Authoritative Information |
|---|---|
| 类别 | 2xx 成功 |
| 规范 | RFC 9110 §15.3.4 |
| 历史名 | Partial Information(HTTP/1.1 早期用名) |
| 现状 | 现代代理普遍不再主动返回,改写行为缺少显式标注 |
| 客户端处理 | 与 200 相同:按成功继续,缓存规则不变 |
典型使用场景
- 排查页面被注入或被截断:链路中可能存在改写响应的中间节点
- 对接第三方接口:返回内容未必是源站原样,应直连源站比对响应
- 透明代理环境(移动网络、企业出口)的内容审计与合规检查
- 协议实现者:203 与 200 的差异只在元信息权威性,其余处理逻辑一致
- CDN 排障:判断改写发生在边缘节点还是回源链路,缩小排查范围
- 安全事件响应:内容异常时先确认请求是否经过改写节点
语义示意
语义示意
HTTP/1.1 203 Non-Authoritative Information
Content-Type: text/html; charset=utf-8
# 头部可能已被中间节点转换,实体内容也可能被裁剪或重写
# 判断内容是否被动过手脚:绕过代理直连源站,逐字段对比响应
curl -sI https://origin.example.com/page # 源站基准
curl -sI https://site.example.com/page # 经代理的链路200 与 203 的差异
| 维度 | 200 OK | 203 Non-Authoritative |
|---|---|---|
| 元信息来源 | 源站的权威副本 | 经代理转换的非权威副本 |
| 缓存行为 | 按常规规则缓存 | 同样可缓存,规则不变 |
| 排查含义 | 正常响应 | 链路上存在改写节点 |
| 出现频率 | 绝大多数响应 | 极少见 |
203 只说明元信息来自非权威来源,不代表内容有错;要判断内容是否被改动,应直接对比源站响应,而不是只看状态码。
缓存规范 RFC 9111 已移除旧的 Warning 头机制,现代代理不再用头部标注转换行为,因此「内容被改写」往往完全没有显式信号可依赖。
部分透明代理历史上会改写 HTML 插入广告或统计脚本;若 203 伴随内容结构异常或被注入外链,应按安全事件排查而不是当兼容性问题处理。