彩神大发快三_神彩大发快三官方

java实现断点续传的原理

时间:2020-01-02 13:30:26 出处:彩神大发快三_神彩大发快三官方

服务端代码:

客户端测试代码:

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

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

Content-Range=bytes 800070-106788027/106788028 

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

80 

Content-Length=106788028 

Accept-Ranges=bytes 

Date=Mon, 80 Apr 801 12:56:11 GMT 

ETag=W/"02ca57e173c11:95b" 

Content-Type=application/octet-stream 

Server=Microsoft-IIS/5.0 

Last-Modified=Mon, 80 Apr 801 12:56:11 GMT

我觉得断点续传的原理很简单,统统 在Http的请求上和一般的下载有所不同而已。 

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

假设服务器域名为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

仔细看一下就会发现多了一行RANGE: bytes=800070- 

这俩行的意思统统 告诉服务器down.zip这俩文件从800070字节刚刚刚开始传,前面的字节不用传了。 

服务器收到这俩请求刚刚,返回的信息如下: 

206 

Content-Length=106788028 

Content-Range=bytes 800070-106788027/106788028 

Date=Mon, 80 Apr 801 12:55:20 GMT 

ETag=W/"02ca57e173c11:95b" 

Content-Type=application/octet-stream 

Server=Microsoft-IIS/5.0 

Last-Modified=Mon, 80 Apr 801 12:55:20 GMT

所谓断点续传,也统统 要从文件可能下载的地方刚刚刚开始继续下载。统统在客户端浏览器传给 Web服务器的刚刚要多加二根信息--从哪里刚刚刚开始。 

下面是用另一方编的4个 "浏览器"来传递请求信息给Web服务器,要求从800070字节刚刚刚开始。 

GET /down.zip HTTP/1.0 

User-Agent: NetFox 

RANGE: bytes=800070- 

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

热门

热门标签