0

根据范围标头的 HTTP/1.1 规范(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35),声明

HTTP 中的字节范围规范适用于实体主体中的字节序列(不一定与消息主体相同)。

我的问题是假设我要求下载大小为 1GB 的二进制文件,并且它有多个 128MB 的加密块。由于 HTTP 的字节范围不等于文件的大小而不是 HTTP 实体的大小,因此可以从服务器并行下载这些块而不打破边界。请注意,我不想重新组装文件。我想分别处理这些块来解密。哪个 Range 标头最合适以及如何得出要在该 Range 标头中发送到的正确值?

谢谢,

4

1 回答 1

0

Range 标头适用于不完整的 HTTP 实体,而仅适用于该 HTTP 实体的实体主体。HTTP 消息 RFC ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html ) 说

HTTP 消息的消息体(如果有)用于携带与请求或响应相关联的实体体。仅当应用了传输编码时,消息主体与实体主体不同,如 Transfer-Encoding 标头字段(第 14.41 节)所示。

另一个很好的阅读参考是http://www.ietf.org/rfc/rfc3229.txt(第 4 节 - HTTP 消息生成序列),它解释了如何生成 HTTP 响应。从概念上讲,当请求中同时提供 Range 标头和传输编码时,首先应用 Range 来生成消息响应,然后应用传输编码。我认为大多数 HTTP 服务器都应该确认这一点,因此我们可以应用范围标头 wrt 消息内容长度。

于 2013-02-04T17:25:17.450 回答