Chunked Transfer Encoding、Content-Length与Byte Serving兼容性疑问
你的理解存在部分偏差,具体可以拆解为两点说明:
- 你对
Transfer-Encoding: chunked的规则认知是正确的。HTTP/1.1规范明确要求:如果响应头中携带了Transfer-Encoding: chunked,就不允许同时出现Content-Length头,否则客户端会优先按照chunked传输规则处理响应内容。 - 你对断点续传、部分下载的前提认知是错误的。这类能力的核心前提是服务端支持
Range请求头,且在部分响应中返回Content-Range头,明确告知客户端当前返回的内容片段对应整个资源的字节位置、以及整个资源的总大小。哪怕当前的部分响应用chunked编码流式传输,只要Content-Range头字段正确,客户端就能正常识别响应属性,完全可以实现断点续传、分片下载的需求。
这也是二者兼容的原因:你知晓总资源大小,可以在Content-Range里返回总长度信息,不需要依赖Content-Length头,同时还能通过chunked编码流式传输请求的内容片段。
内容的提问来源于stack exchange,提问作者user994165
相关产品推荐
相关产品推荐

