断点续传和多线程下载
断电续传多线程下载
HTTP是通过在Header里两个参数实现的 客户端发送请求时对应的是
Range服务器端响应时对应的是 Content-Range
断点续传和多线程下载
Range
1,Range:bytes = 0-499
2,Range:bytes = 500-999
3,Range:bytes -500
4,Range:bytes = 500-
5,Range:bytes = 500-600,601-999
6,用于请求头种 指定第一个字节位置和最后一个字节位置
一般格式:Range:(unit=first byte pos)-[last byte pos]
Content-Range
1,用于响应头种 在发出带Range的请求后 服务器会在Content-Range头部
返回当前接收的范围和文件总大小
2,一般格式: Content-Range:bytes(unit first byte pos)-[last byte pos]/[entity legth]
3,而且在响应完成后 返回的响应头内容也不同
HTTP/1.1 200 OK (不使用断点续传方式)
HTTP/1.1 206 Partial Content(使用断电续传方式)
断点续传过程
1,客户端下载一个1024的文件 已经下载了其中512K
2,网络中断,客户端请求续传 因此需要在HTTP头中声明本次需要继续传的片段
Range:bytes=512000-这个头通知服务端从文件的512K位置开始传输文件
3,服务端受到断电续传请求 从文件512K位置开始传输并且在HTTP头中增加
Content-Range:bytes 512000-/1024000
并且此时服务端返回的HTTP状态码 应该是206 而不是200

浙公网安备 33010602011771号