多线程断点下载开发总结(一) - Http head Range标记

    好久以前用DotNet 作了一个多线程的断点下载工具,今天忽然须要用到一些东西,居然一时想不起了,翻了翻源码,这里简单总结一下。 服务器

    断点下载 的基本协议采用的是Http 下载,那么服务器如何响应断点请求一个完整文件的部分数据呢,这里须要用到 Http 协议头 的 Range标记,客户端发起请求的时候加上 Range标记 例如,Range:bytes=0-128 ,表示请求的文件的第1个到128个字节的数据,这时候服务器响应下载时会返回 Http 响应头:Content-Range:  bytes  0-128/200 ,这里200是文件的总大小。下面是一个请求响应头的详细说明。 多线程

请求下载整个文件: 
GET  /file.rar  HTTP/1.1 
Connection:  close 
Host:  116.1.219.219 
Range:  bytes=0-801 //通常请求下载整个文件是bytes=0- 或不用这个头 
通常正常回应 
HTTP/1.1 200 OK 
Content-Length:  801      
Content-Type:  application/octet-stream  
Content-Range:  bytes  0-800/801 //801
app

注意:若是用户的请求中含有range ,则服务器的相应代码为206。
206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。
工具

相关文章
相关标签/搜索