http断点续传原理
断点续传,就是从文件已下载完成的地方起始继续下载。最早HTTP 协议是不支持断点续传的,从HTTP/1.1 开始支持。
HTTP1.1 协议开始支持获取文件的部分内容,这为并行下载和断点续传提供了技术支持。它是通过在 Header 里两个参数实现的,客户端发请求时带报头域 Range ,服务器响应时带报头域 Content-Range。
在客户端发出带 Range报头域的请求后,服务器会在响应报头中带Content-Range 返回,表面当前接受的范围和文件总大小。
而在响应完成后,返回的响应头内容也不同:
HTTP/1.1 200 Ok(不使用断点续传方式)
HTTP/1.1 206 Partial Content(使用断点续传方式)
相关报头
断点下载时才用到的Range 和 Content-Range 实体报头。
Range
在请求头中使用,指定下载范围的第一个字节的位置和最后一个字节的位置,一般格式:
Range:(unit=first byte pos)-[last byte pos]
请求下载整个文件:
GET /testMovie.rar HTTP/1.1
Connection: close
Host: 106.1.229.219
Range: bytes=0-1025 //请求下载整个文件,可以是bytes=0- 或不用这个头
一般正常回应
HTTP/1.1 200 OK
Content-Length: 1025
Content-Type: applic