断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每个部分采用一个
线程进行上传或下载,若是碰到网络故障,能够从已经上传或下载的部分开始继续上传下载未完成的部分,而没有必要从头开始上传下载。用户能够节省时间,提升速度
使用多线程断点续传下载的时候,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每个部分采用一个线程进行上传或下载,多个线程并发能够占用服务器端更多资源,从而加快下载速度。
在下载(或上传)过程当中,若是网络故障、电量不足等缘由致使下载中断,这就须要使用到断点续传功能。下次启动时,能够从记录位置(已经下载的部分)开始,继续下载之后未下载的部分,避免重复部分的下载。断点续传实质就是能记录上一次已下载完成的位置。
断点续传的过程
①断点续传须要在下载过程当中记录每条线程的下载进度;
②每次下载开始以前先读取数据库,查询是否有未完成的记录,有就继续下载,没有则建立新记录插入数据库;
③在每次向文件中写入数据以后,在数据库中更新下载进度;
④下载完成以后删除数据库中下载记录。
断点续传在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下载文件时,遇到网络中断,不须要从新启动机器,也可实现断点续传。前提是,在恢复下载、开始断点续传并提示再次保存文件时,要使用和第一次下载时相同的路径和文件名。
断点续传的特色
断点续传支持从文件上次中断的地方开始传送数据,而并不是是从文件开头传送。
断点续传下载软件具备如下特色:
一、断点续传功能,既可节约时间又能够节约金钱。
二、定时下载功能,能够为将要下载的软件制定一任务列表,让
下载软件在规定的时间自动拨号上网并下载软件,下载完毕后再自动挂起Modem,断开与internet的链接,甚至自动关闭计算机。
三、多文件同时下载。
四、支持拖放式操做,可将下载文件的URL
超连接用鼠标拖放到下载软件的窗口上,便可激活下载软件,同时开始文件的下载。
五、自动捕捉剪贴板上的URL并激活
下载软件,能够捕捉到剪贴板中的URL,甚至浏览器中单击下载文件超连接,便可激活程序实现文件的下载。
六、致命错误发生时的关闭机制。
七、预防病毒侵害的安全机制,文件下载完毕,便可自动将其发送到指定的病毒的检测软件进行病毒扫描。
断点续传下载软件包括Thunder、NetAnts、FlashGet、Net Vampire、Download Manager、GetRight、Go!Zilla、WinDownload等。