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

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

从技术上讲,托管(在服务器上)的方式有什么区别?

  • 可以在下载时暂停并继续下载的文件,以及
  • 需要一次性下载的文件?

答案1

服务器需要支持提供部分内容和处理部分请求的能力。大多数现代 Web 服务器都能够处理它,除非您使用内部构建的服务器。

您可以通过阅读此内容获取更多信息阿帕奇文档和相关 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--

答案2

一个常见的问题是缺少content-sizecontent-range标头。也许作者忘记在下载脚本中设置一个?

答案3

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

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

一些视频播放器使用范围请求来支持视频搜索。Ogg 媒体容器使用插值二分搜索来支持该用例。

流行的 Web 服务器软件可以配置为提供静态文件的范围,但验证下载的服务器端脚本可能需要或不需要自己处理范围。(请查看脚本语言手册。)一些向公众开放的下载服务器运营商故意阻止范围请求,因为一些下载管理器利用对内容范围的支持向服务器发出多个请求,从而占用了可用于向其他用户提供下载的资源。

相关内容