码迷,mamicode.com
首页 > 其他好文 > 详细

断点续传的原理

时间:2016-08-17 22:37:43      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

断点续传的理解可以分为两部分:一部分是断点,一部分是续传。断点的由来是在下载过程中,将一个下载文件分成了多个部分,同时进行多个部分一起的下载,当某个时间点,任务被暂停了,此时下载暂停的位置就是断点了。续传就是当一个未完成的下载任务再次开始时,会从上次的断点继续传送。

 

使用多线程断点续传下载的时候,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,多个线程并发可以占用服务器端更多资源,从而加快下载速度。
  在下载(或上传)过程中,如果网络故障、电量不足等原因导致下载中断,这就需要使用到断点续传功能。下次启动时,可以从记录位置(已经下载的部分)开始,继续下载以后未下载的部分,避免重复部分的下载。断点续传实质就是能记录上一次已下载完成的位置。


 断点续传的过程
  ①断点续传需要在下载过程中记录每条线程的下载进度;
  ②每次下载开始之前先读取数据库,查询是否有未完成的记录,有就继续下载,没有则创建新记录插入数据库;
  ③在每次向文件中写入数据之后,在数据库中更新下载进度;
  ④下载完成之后删除数据库中下载记录。


断点续传在HTTP请求上和一般的下载有所不同,客户端浏览器传给Web服务器的时候要多加一条信息——从哪里开始(HTTP请求变量)。要实现HTTP断点续传,Web服务器必须支持HTTP/1.1(相对于HTTP/1.0老版本)。
  HTTP请求是有一个Header的,里面有个Range属性是定义下载区域的,它接收的值是一个区间范围,比如:Range:bytes=0-10000。这样我们就可以按照一定的规则,将一个大文件拆分为若干很小的部分,然后分批次的下载,每个小块下载完成之后,再合并到文件中;这样即使下载中断了,重新下载时,也可以通过文件的字节长度来判断下载的起始点,然后重启断点续传的过程,直到最后完成下载过程。

  FTP实现断点续传
  FTP协议也可以支持断点续传下载数据,基本原理是用get命令拿数据的时候在文件名后面加上要获取的起始位置。FTP实现断点续传有三个条件:
  ①断点续传需要服务器的支持,FTP服务器必须能提供断点续传的功能。
  传统的FTP Server是不支持断点续传的,因为它不支持REST指令;目前包括IIS和大部分的FTP架设软件都有了这个功能。用Serv-U架设FTP服务器就能支持断点续传。
  ②支持断点续传的下载工具软件
  QQ旋风、迅雷、影音传送带等大多下载软件都支持断点续传;IE浏览器5.0以前的版本默认的自带下载方式不支持断点续传。在手机上,UC浏览器支持断点续传,能够自动存储已下载的部分,重新打开之后可以继续在已下载部分的基础上继续下载。
  ③FTP服务器上的文件要与下载到硬盘中的文件名相同。
  在使用IE下载文件时,遇到网络中断,不需要重新启动机器,也可实现断点续传。前提是,在恢复下载、开始断点续传并提示再次保存文件时,要使用和第一次下载时相同的路径和文件名。

 

Application与Session对象之间的区别。

1. 应用范围不同。 Session是对应某一个用户的。而Application是整站共用的。

2. 存活时间不同。Session是在站点的页面从打开到被关闭之前一直生存的,关闭或跳转到其它网站就会使Session死掉。而Application是从站点发布以来一直存活的,除非重启了站点服务,IIS。

Session的中文是"会话"的意思,ASP中Session代表了服务器与客户端之间的"会话" 。
利用Session可以存储浏览者的一些特定信息,如:浏览者的姓名、性别、所用浏览器的类型以及访问停留时间等。Session对个人信息的安全性构成了一定的威胁。

Application对象是一个应用程序级的对象,它包含的数据可以在整个Web站点中被所有用户使用,并且可以在网站运行期间持久地保存数据

 

断点续传支持从文件上次中断的地方开始传送数据,而并非是从文件开头传送。
  断点续传下载软件具有以下特点:
  1、断点续传功能,既可节约时间又可以节约金钱。
  2、定时下载功能,可以为将要下载的软件制定一任务列表,让下载软件在规定的时间自动拨号上网并下载软件,下载完毕后再自动挂起Modem,断开与internet的连接,甚至自动关闭计算机。
  3、多文件同时下载。
  4、支持拖放式操作,可将下载文件的URL超链接用鼠标拖放到下载软件的窗口上,即可激活下载软件,同时开始文件的下载。
  5、自动捕捉剪贴板上的URL并激活下载软件,可以捕捉到剪贴板中的URL,甚至浏览器中单击下载文件超链接,即可激活程序实现文件的下载。
  6、致命错误发生时的关闭机制。
  7、预防病毒侵害的安全机制,文件下载完毕,即可自动将其发送到指定的病毒的检测软件进行病毒扫描。
  断点续传下载软件包括Thunder、NetAnts、FlashGet、Net Vampire、Download Manager、GetRight、Go!Zilla、WinDownload等。

 

断点续传的原理

标签:

原文地址:http://www.cnblogs.com/ltl1532/p/5781874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!