我从已经压缩的现有材料(使用 Node)即时创建了一个长度未知的 ZIP 存档。在 ZIP 存档中,文件只是被存储;ZIP 仅用于拥有一个容器。这就是缓存创建的 ZIP 文件没有意义的原因 - 不涉及真正的计算。
到目前为止,好的。现在我想允许恢复下载,并且我正在阅读有关 Accept-Range、Range 和 Content-Range HTTP 标头的信息。下载损坏的客户端会要求一个开放范围,例如:Range: bytes=8000000-
.
我该如何回答?根据RFC 2616 § 14.16 ,我的答案必须包含一个 Content-Range 标头,并且在那里:
与 byte-ranges-specifier 值(参见第 14.35.1 节)不同,byte-range-resp-spec 必须只指定一个范围,并且必须包含范围的第一个和最后一个字节的绝对字节位置。
所以我不能只发送“从位置 X 开始的所有内容”,我还必须指定发送的最后一个字节——要么只发送已知大小的一部分,要么提前计算长度。这两种想法都不适合我的情况。还有其他可能吗?