您的位置:首页 > 理论基础 > 计算机网络

http断点续传与文件下载原理解析

2015-06-16 16:17 423 查看
 一、断点续传的原理

       其实断点续传的原理很简单,就是在http的请求上和一般的下载有所不同而已。

       打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:

       假设服务器域名为www.jizhuomi.com/android,文件名为down.zip。

?
 
    服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下:

?
 
     所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给web服务器的时候要多加一条信息--从哪里开始。

      下面是用自己编的一个“浏览器”来传递请求信息给web服务器,要求从2000070字节开始。

?
 
  仔细看一下就会发现多了一行 range: bytes=2000070-

       这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。

       服务器收到这个请求以后,返回的信息如下:

?
 
 和前面服务器返回的信息比较一下,就会发现增加了一行:

content-range=bytes 2000070-106786027/106786028

返回的代码也改为206了,而不再是200了。

 知道了以上原理,就可以进行断点续传的编程了。
二.文件下载和在浏览器显示

文件下载原理主要控制来自于服务器端响应,浏览器或者httpClient自行读取IO流

?
 
下面是一个简单的好PHP下载实例

?
 
三.关于在浏览器中显示文件内容

浏览器默认会显示一些 text/*,image/*,PDF类型的文件,但默认会变成自动下载,这是我们需要修改响应头为

?
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: