棘手的部分是识别中心目录的开始,该目录发生在文件的末尾.由于每个条目都是相同的固定大小,因此您可以从文件末尾开始进行一种二进制搜索.二进制搜索试图猜测中心目录中有多少条目.从一些合理的值N开始,并在end-(N*sizeof(DirectoryEntry))检索文件的那一部分.如果该文件位置不以中心目录条目签名开头,则N太大 - 一半重复,否则,N太小,双重并重复.与二进制搜索一样,该过程保持当前的上限和下限.当两者相等时,您已找到N的值,即条目数.
您点击网络服务器的次数最多为16次,因为不超过64K条目.
这是否比下载整个文件更有效取决于文件大小.您可以在下载之前请求资源的大小,如果它小于给定的阈值,请下载整个资源.对于大型资源,如果阈值设置为高,请求多个偏移将更快,并且对网络服务器总体上减少负担.
HTTP/1.1允许下载资源范围.对于HTTP/1.0,您别无选择,只能下载整个文件.
| 归档时间: |
|
| 查看次数: |
820 次 |
| 最近记录: |