http大文件断点续传

2021-08-18 16:36:29 浏览数 (1)

HTTP状态码206和416

1、如何判断远程服务器是否支持HTTP 206

其中有两个我们比较关注的请求头:

Accept-Ranges: bytes - 该响应头表明服务器支持Range请求,以及服务器所支持的单位是字节(这也是唯一可用的单位).我们还能知道:服务器支持断点续传,以及支持同时下载文件的多个部分,也就是说下载工具可以利用范围请求加速下载该文件.Accept-Ranges: none 响应头表示服务器不支持范围请求.

Content-Length: 913 Content-Length响应头表明了响应实体的大小,也就是真实的图片文件的大小是913字节 .

2、发送Range请求

在http请求header里带上头:Range: bytes=0-1024

curl -v -s  --header "Range: bytes=0-2000" http://images2015.cnblogs.com/news/24442/201608/24442-20160805112458981-1554012564.jpg -o part1

3、web服务器开启Accept-Ranges

4、HTTP 416错误与断点续传

HTTP response code: 416是由于读取文件时设置的Range有误造成的,具体的说就是下面这行代码有误: httpConnection.setRequestProperty("RANGE", "bytes=1024-"); 这个RANGE显然不能超出文件的size

比如文件大小为10M,指定11M-就会错误

0 人点赞