【问题标题】:What's the optimal length for HTTP range requestHTTP 范围请求的最佳长度是多少
【发布时间】:2012-08-02 06:43:28
【问题描述】:
我有一个通过多个 HTTP 范围请求获取大文件的 javascript 下载器:
xhr.setRequestHeader("Range", "bytes=" + start + "-" + end);
结束时
var end = start + length
范围请求是必须的,因为我需要在文件中获取特定的偏移量(想想从多个 HTTP 服务器下载)
如果下载器要使用这种方法下载大约 100MB 的文件,那么获得良好吞吐量的最佳长度是多少?
【问题讨论】:
标签:
http
http-headers
xmlhttprequest
xmlhttprequest-level2
【解决方案1】:
恐怕您的问题没有简单的答案。有许多类型的连接,对于每一对客户端-服务器,答案会有所不同,这取决于延迟、带宽、连接质量、断开连接的频率,甚至更复杂的东西,因为在某些情况下并行连接的数量、一个请求中传输的最大大小等可能存在限制。如果您只对某种此类场景感兴趣,例如与附近服务器的快速、良好连接,那么我会说您选择的值并不重要,因为连接开销通常低于十分之一一秒钟。
这还取决于您如何处理响应;如果您将其加载到内存中,那么请考虑到您将从一台您不知道的计算机上消耗内存,并且假设没有人会介意为一个段消耗额外的 16Mb 是一个很大的假设。