如何确定有效的范围标头w.r.t HTTP实体?

时间:2013-02-02 07:08:28

标签: http http-headers range

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

  

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

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

谢谢,

1 个答案:

答案 0 :(得分:0)

Range标头适用于完整HTTP实体,而不仅适用于该HTTP实体的 entity-body 。 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标题&在请求中提供传输编码两者,首先应用范围用于消息响应生成&然后应用传输编码。我认为大多数HTTP服务器应该对此进行确认,因此我们可以应用范围标头w.r.t消息内容长度。