You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于HTTP响应头与正文以CRLFCRLF分隔的标准依据及安全提取响应正文的咨询

关于HTTP响应头与正文以CRLFCRLF分隔的标准依据及安全提取响应正文的咨询

嗨,这个问题问得很精准,不少人研究HTTP细节时都会在分隔符这里卡壳,我来给你理清楚:

首先,你提到的CRLFCRLF(两个连续的回车换行)作为响应头与正文的分隔符,确实在RFC 9110中有明确规定,只是可能你没定位到具体章节。在RFC 9110的「消息格式」部分,明确定义了HTTP消息的结构是:起始行 + 头字段 + 空行 + 消息体。这里的「空行」就是由CRLF组成的,而每个头字段本身也以CRLF结尾,所以当所有头字段结束后,再加上一个CRLF,就形成了CRLFCRLF的分隔边界——前一个CRLF是最后一个头字段的结束标记,后一个CRLF就是专门分隔头与体的空行。

接着说安全提取正文的问题,哪怕有这个标准做基础,也得结合HTTP的其他机制来确保准确性,毕竟有些特殊场景下单纯依赖CRLFCRLF会出问题:

  • 优先参考Content-Length头:如果响应里包含这个字段,它会明确指定正文的字节数,这是最可靠的提取依据。你可以在定位到CRLFCRLF后,读取对应长度的字节作为正文。
  • 注意分块传输编码(Transfer-Encoding: chunked):这种场景下正文被拆分成多个块,每个块开头是十六进制的块长度+CRLF,接着是块内容+CRLF,最后以0CRLFCRLF结尾。这时候不能只靠CRLFCRLF,必须按照分块的规则逐块解析。
  • 特殊响应无需提取正文:比如204 No Content或者304 Not Modified这类响应,本身就没有正文内容,哪怕你找到了CRLFCRLF,也不需要读取后续字节。

如果之前你没在RFC 9110里找到相关内容,其实这个规则是从早期HTTP/1.0就延续下来的,RFC 9110作为HTTP/1.1的最新规范,完整继承了这个约定,在「3. Message Format」的结构描述、「5.2. Message Body」的细节说明里都有隐含体现。

备注:内容来源于stack exchange,提问作者Itération 122442

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:57:56