目标
流式导出在多数环境正常,但某个代理破坏了末尾分块,让客户端报出难以理解的解析错误。本配方把原始分块响应保存下来,手工逐帧解码,校验每个分块长度行是否是合法十六进制,并检查是否有零长度终止块,从而定位损坏发生在源站还是代理。
步骤要点
- 用 curl –raw 保存未解码的分块响应体。
- 按 CRLF 切分,逐帧校验长度行是否为合法十六进制。
- 检查是否存在零长度终止块,缺失会让客户端挂起。
- 在源站与代理两侧分别抓取,确认坏帧来源。
curl --raw -sS https://stream.example.com/export -o raw.http
head -c 200 raw.http | xxd | head
排错提示
- 代理可能重新分块,需在源站侧对比。
- 缺少终止块会导致客户端一直等待。
- 手工解码仅用于调试,不能用于生产解析。
适用边界
- 适用于 HTTP/1.1 分块,不适用于 HTTP/2 帧。
- 不校验分块内容语义。