Http文件断点下载(Http请求头的Range字段)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aiwusheng/article/details/64437736

所谓断点下载,也就是要从文件已经下载的地方开始继续下载。
在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了。一般断点下载时要用到 Range 。

###Range
请求头中,指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分,一般格式:

Range: bytes=[first byte pos]-[last byte pos] 

例如:

Range: bytes=1173546-

或者

Range: bytes=1173546-2173546

例:请求下载整个文件:

GET /test.rar HTTP/1.1 
Connection: close 
Host: 116.1.219.219
//一般请求下载整个文件是bytes=0- 
//或不用这个头,一般正常回应 
Range: bytes=0-801 

Range只是用来支持下载的,因为本地客户端在发起请求的时候能够通过文件的大小判断自己下到哪了;但是上传是不行的,即使客户端有记录进度,也不代表这些数据真的到了服务器,所以上传是用的切块,下载是用的range续传

举个例子:
https://github.com/xiaxveliang/Android_Net_HttpUrlConnect_Demo/blob/master/app/src/main/java/com/example/scalephoto/http/getfile/HttpGetFile.java

参考:
http断点续传原理:http头 Range、Content-Range
HTTP请求头与响应头

========== THE END ==========

您对“我的文章”有任何疑问,可用微信扫描以下“二维码”向我提问!

在这里插入图片描述

如果文章对您有帮助,请扫描以下二维码支持我!

在这里插入图片描述

没有更多推荐了,返回首页