102 是什么
102 Processing 是 WebDAV 定义的信息性状态码(RFC 2518 §10.1),服务器用它告诉客户端「请求已收到、正在处理、请不要超时断开」。它既不表示成功也不表示失败,属于 1xx 信息响应:中间件不得缓存,客户端收到后必须继续等待最终的完整状态行。修订版 WebDAV 规范 RFC 4918 未再收录该码(原因之一就是中间件对 1xx 的转发处理不一致),因此现代实现基本不再主动发送。
基本信息
| 名称 | 102 Processing |
|---|---|
| 类别 | 1xx 信息性响应(不是最终结果) |
| 首次定义 | RFC 2518 §10.1(WebDAV) |
| 现状 | RFC 4918 未再收录,实际部署极少 |
| 作用 | 长操作保活,避免客户端读超时断开 |
| 与轮询取舍 | 保活占用连接;长任务更适合异步提交加状态查询 |
典型使用场景
- 客户端超时策略设计:把 1xx 视为保活信号,不要立刻判定请求失败
- 抓包分析长事务:区分「服务器还在处理」与「连接已经断开」
- 协议实现者:响应解析按 1xx 通用规则跳过,不被内容长度推导带偏
- 排查「请求发出后长时间无响应」:确认是否只收到 102 而没有最终状态行
- 长任务接口设计评估:保活能撑多久,取决于链路中最早超时的那一跳
- 与 103 对照:102 只保活,103 还会附带 Link 头引导客户端预加载
交互示意
交互示意
客户端 --请求--> 服务器
<-- HTTP/1.1 102 Processing # 保活:仍在处理,请继续等待
<-- HTTP/1.1 102 Processing # 多次保活是允许的
<-- HTTP/1.1 207 Multi-Status # 最终结果(WebDAV 批量操作场景)
# 客户端只有收到非 1xx 状态行才算拿到结果1xx 家族对照
| 状态码 | 含义 | 出现时机 |
|---|---|---|
| 100 | Continue 继续 | 配合 Expect: 100-continue,同意接收请求体 |
| 101 | Switching Protocols | 协议升级,如升级到 WebSocket |
| 102 | Processing 处理中 | WebDAV 长操作保活,不含实体 |
| 103 | Early Hints 早期提示 | 提前下发 Link 头,引导客户端预加载 |
1xx 响应不携带实体,也不改变最终结果;在 HTTP/2、HTTP/3 中以 HEADERS 帧表示,客户端库需显式支持才能读到 102 与 103。
HTTP/1.1 中连续出现多个 1xx 是合法的,但最终必须有一个非 1xx 的完整响应;解析器不能把 102 当成响应结束,否则会把正常连接误判为中途断开。
代理与 CDN 对 1xx 的转发行为差异很大;若客户端始终看不到最终响应,先确认链路是否吞掉了后续状态行,而不是急着认定源站超时。