【问题标题】:HTTP multirange requests - headers in responseHTTP 多范围请求 - 响应的标头
【发布时间】:2023-03-08 10:30:01
【问题描述】:
我正在使用这样的多范围 http 请求
“卷曲--范围 1-2,2-3 http://some.url”
反应是这样的
--000000000000000030705 内容类型:文本/html; charset=utf-8 内容范围:字节 1-2/13882393
我
--00000000000000030705 内容类型:文本/html; charset=utf-8 内容范围:字节 2-3/13882393
乐
--00000000000000030705--
如何从响应中删除字段 Content-Type 和 Content-Range 以从服务器获取原始数据(无需在客户端解析)?
我想得到这样的回应:
“我”
非常感谢!
【问题讨论】:
标签:
http
curl
httprequest
【解决方案1】:
你可能做不到。服务器符合规范,如by the RFC 所述。
如果正在传输多个部分,则生成 206 响应的服务器必须生成一个“multipart/byteranges”有效负载,如附录 A 中所定义,以及一个包含 multipart/byteranges 媒体类型及其所需边界的 Content-Type 标头字段范围。为避免与单部分响应混淆,服务器不得在多部分响应的 HTTP 标头部分中生成 Content-Range 标头字段(该字段将在每个部分中发送)。
在连续多范围的情况下,服务器可以发送没有多部分边界的响应,但这是可选的。
当请求多个范围时,服务器可以合并任何重叠的范围,或者由小于发送多个部分的开销的间隙分隔的范围,而不管相应字节范围的顺序如何- spec 出现在接收到的 Range 标头字段中。由于多部分/字节范围有效负载部分之间的典型开销约为 80 字节,具体取决于所选表示的媒体类型和所选边界参数长度,传输许多小的不相交部分的效率可能低于传输整个选定的部分表示。
在多部分负载中每个正文部分的标头区域内,服务器必须生成与包含在该正文部分中的范围相对应的 Content-Range 标头字段。如果所选表示在 200 (OK) 响应中具有 Content-Type 标头字段,则服务器应在每个正文部分的标头区域中生成相同的 Content-Type 字段。例如:
假设您的服务器符合规范,发送单个范围 1-3 您将得到一个主体。