mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 08:06:19 +00:00
官方 Codex 客户端对较大的 /v1/responses 请求体默认 zstd 压缩(level 3)并 携带 Content-Encoding: zstd,也会使用 gzip。网关此前只在出站方向按官方指纹 做 zstd 压缩(client_sse.rs),入站方向却不接受压缩正文,压缩请求一律命中 400 invalid_json("Request body must be valid JSON.")。官方后端接受压缩 请求,因此直连官方可用的会话经网关转发时会在 HTTP 回退路径稳定失败。 现在 POST /v1/responses 入站解码按 Content-Encoding 解压后再进入 JSON 解析: - 支持 gzip、deflate、zstd;未压缩与 identity 原样透传 - 解压结果超过 64 MiB 上限时拒绝,防御解压炸弹 - 未知 Content-Encoding 返回 400 unsupported_content_encoding - 损坏的压缩载荷统一按 invalid_json 返回,不泄露内部细节 WebSocket 帧路径不受影响(permessage-deflate 由传输层协商处理)。