下载可暂停和不可暂停的文件有什么区别?

从技术上说,托pipe方式(在服务器上)有什么区别

  • 一个文件,可以暂停下载并重新恢复,和
  • 一个需要一次下载的文件?

服务器将需要支持部分内容的服务和处理部分请求的能力。 大多数现代Web服务器都能够处理它,除非你正在使用你自己构build的东西。

通过阅读这个Apache文档和相关的RFC可以获得更多的信息。 从链接的文档 – 响应的一个例子。

HTTP/1.1 206 Partial Content Date: Wed, 15 Nov 1995 06:25:24 GMT Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES --THIS_STRING_SEPARATES Content-type: application/pdf Content-range: bytes 500-999/8000 ...the first range... --THIS_STRING_SEPARATES Content-type: application/pdf Content-range: bytes 7000-7999/8000 ...the second range --THIS_STRING_SEPARATES-- 

常见的是缺lesscontent-sizecontent-range标题。 也许作者忘了在他们的下载脚本中设置一个?

如果HTTP服务器支持RFC 2616第14.35节中定义的范围检索请求,则可以恢复下载,维基百科由于某些奇怪的原因而将其称为“ 字节服务 ”。

  1. 服务器在对HEADGET请求的响应中发送Accept-Ranges: bytes来指示它支持字节服务。
  2. 客户端发送GET请求,包括Range: bytes=aaa-bbb ,其中起始偏移量是文件开始后的aaa字节,范围的长度是bbb - aaa + 1个字节。
  3. 服务器发送包含Content-range: bytes aaa-bbb/cccc的状态206(部分内容)响应,其中aaa-bbb与之前一样, cccc是文件的长度(以字节为单位),或者如果服务器无法确定,之后是包含所请求的字节范围的响应主体。 如果范围超出范围,则服务器发送状态416(请求范围不可满足)响应。

一些video播放器使用范围请求来支持通过video进行search。 Ogg媒体容器使用内插分叉search来支持这个用例。

stream行的Web服务器软件可以configuration为服务于静态文件的范围,但是validation下载的服务器端脚本可能需要或可能不需要处理范围本身。 (请检查您的脚本语言的手册。)一些下载服务器运营商开放给公众故意阻止范围请求,因为几个下载pipe理器已经使用支持内容范围向服务器发出多个请求,占用可用于提供下载的资源给其他用户。