http文件的断点续传和下载

Posted YDDMAX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http文件的断点续传和下载相关的知识,希望对你有一定的参考价值。

http://www.tuicool.com/articles/ZbyymqJ

Content-Disposition:inline; filename= "c501b_01_h264_sd_960_540.mp4"    浏览器的行为不再是提示下载文件,而是打开文件

一个server端和client端的例子

http抓包的例子

206 Partial Content

服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。
该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。
响应必须包含如下的头部域:
Content-Range 用以指示本次响应中返回的内容的范围;如果是 Content-Type 为 multipart/byteranges 的多段下载,则每一 multipart 段中都应包含 Content-Range 域用以指示本段的内容范围。假如响应中包含 Content-Length,那么它的数值必须匹配它返回的内容范围的真实字节数。
Date
ETag 和/或 Content-Location,假如同样的请求本应该返回200响应。
Expires, Cache-Control,和/或 Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。
假如本响应请求使用了 If-Range 强缓存验证,那么本次响应不应该包含其他实体头;假如本响应的请求使用了 If-Range 弱缓存验证,那么本次响应禁止包含其他实体头;这避免了缓存的实体内容和更新了的实体头信息之间的不一致。否则,本响应就应当包含所有本应该返回200响 应中应当返回的所有实体头部域。
假如 ETag 或 Last-Modified 头部不能精确匹配的话,则客户端缓存应禁止将206响应返回的内容与之前任何缓存过的内容组合在一起。

以上是关于http文件的断点续传和下载的主要内容,如果未能解决你的问题,请参考以下文章

基于http的断点续传和多线程下载

断点续传和下载原理分析

Java如何实现大文件分片上传,断点续传和秒传

Unity 使用UnityWebRequest下载超大资源,实现断点续传和分段下载。

断点续传和分块上传

大文件上传下载实现思路,分片断点续传代码实现,以及webUpload组件