断点续传原理

断点续传是大型文件数据传输的核心。本文将以多线程技术和Socket技术为依托,介绍大型文件断点续传的实现方法。
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客  基本实现思想
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客  多线程断点续传实现的基本思想就是在发送端(也称客户端)将要传输的文件分割为大小相当的多块,用多个线程,将这些块同时向目标服务器端发送;在服务器端的服务程序监听数据传输请求,每当接到新的请求,则创建一个新的线程,与客户端的发送线程对应,接收数据,记录数据传输进程
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客  图1是点对点文件断点续传第N块传输过程示意图。在传输发起端(客户端),将大型文件事先分割为大小相当的N块,同时创建N个传输线程,连接目标端服务器。当服务器端接收到每一个连接请求后,告知客户端可以传输文件。当客户端接收到可以传输文件的消息时,首先向服务器发送数据传输信息块(包括第几块、在块中的起始位置)请求,当服务器端接收到该请求后,向客户端发送数据传输信息,客户端然后传输数据传输信息块指定的数据给服务器端,服务器端更新数据传输信息块。
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客(一)断点续传的原理 
断点续传原理 - 大灰狼 - 大灰狼 的博客其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 
断点续传原理 - 大灰狼 - 大灰狼 的博客打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 
断点续传原理 - 大灰狼 - 大灰狼 的博客假设服务器域名为wwww.sjtu.edu.cn,文件名为down.zip。 
断点续传原理 - 大灰狼 - 大灰狼 的博客GET /down.zip HTTP/1.1 
断点续传原理 - 大灰狼 - 大灰狼 的博客Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- 
断点续传原理 - 大灰狼 - 大灰狼 的博客excel, application/msword, application/vnd.ms-powerpoint, */* 
断点续传原理 - 大灰狼 - 大灰狼 的博客Accept-Language: zh-cn 
断点续传原理 - 大灰狼 - 大灰狼 的博客Accept-Encoding: gzip, deflate 
断点续传原理 - 大灰狼 - 大灰狼 的博客User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) 
断点续传原理 - 大灰狼 - 大灰狼 的博客Connection: Keep-Alive 
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下: 
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客200 
断点续传原理 - 大灰狼 - 大灰狼 的博客Content-Length=106786028 
断点续传原理 - 大灰狼 - 大灰狼 的博客Accept-Ranges=bytes 
断点续传原理 - 大灰狼 - 大灰狼 的博客Date=Mon, 30 Apr 2001 12:56:11 GMT 
断点续传原理 - 大灰狼 - 大灰狼 的博客ETag=W/"02ca57e173c11:95b" 
断点续传原理 - 大灰狼 - 大灰狼 的博客Content-Type=application/octet-stream 
断点续传原理 - 大灰狼 - 大灰狼 的博客Server=Microsoft-IIS/5.0 
断点续传原理 - 大灰狼 - 大灰狼 的博客Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT 
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客  
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 
断点续传原理 - 大灰狼 - 大灰狼 的博客Web服务器的时候要多加一条信息--从哪里开始。 
断点续传原理 - 大灰狼 - 大灰狼 的博客下面是用自己编的一个"浏览器"来传递请求信息给Web服务器,要求从2000070字节开始。 
断点续传原理 - 大灰狼 - 大灰狼 的博客GET /down.zip HTTP/1.0 
断点续传原理 - 大灰狼 - 大灰狼 的博客User-Agent: NetFox 
断点续传原理 - 大灰狼 - 大灰狼 的博客RANGE: bytes=2000070- 
断点续传原理 - 大灰狼 - 大灰狼 的博客Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客仔细看一下就会发现多了一行RANGE: bytes=2000070- 
断点续传原理 - 大灰狼 - 大灰狼 的博客这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。 
断点续传原理 - 大灰狼 - 大灰狼 的博客服务器收到这个请求以后,返回的信息如下: 
断点续传原理 - 大灰狼 - 大灰狼 的博客206 
断点续传原理 - 大灰狼 - 大灰狼 的博客Content-Length=106786028 
断点续传原理 - 大灰狼 - 大灰狼 的博客Content-Range=bytes 2000070-106786027/106786028 
断点续传原理 - 大灰狼 - 大灰狼 的博客Date=Mon, 30 Apr 2001 12:55:20 GMT 
断点续传原理 - 大灰狼 - 大灰狼 的博客ETag=W/"02ca57e173c11:95b" 
断点续传原理 - 大灰狼 - 大灰狼 的博客Content-Type=application/octet-stream 
断点续传原理 - 大灰狼 - 大灰狼 的博客Server=Microsoft-IIS/5.0 
断点续传原理 - 大灰狼 - 大灰狼 的博客Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT 
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客和前面服务器返回的信息比较一下,就会发现增加了一行: 
断点续传原理 - 大灰狼 - 大灰狼 的博客Content-Range=bytes 2000070-106786027/106786028 
断点续传原理 - 大灰狼 - 大灰狼 的博客返回的代码也改为206了,而不再是200了。 
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客
断点续传原理 - 大灰狼 - 大灰狼 的博客知道了以上原理,就可以进行断点续传的编程了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值