http协议学习系列(断点续传和多线程下载的实现原理)

q      HTTP协议的GET方法,支持只请求某个资源的某一部分;

q      206 Partial Content 部分内容响应;

q      Range 请求的资源范围;

q      Content-Range 响应的资源范围;

q      在连接断开重连时,客户端只请求该资源未下载的部分,而不是重新请求整个资源,来实现断点续传。

分块请求资源实例:

Eg1:Range: bytes=306302- :请求这个资源从306302个字节到末尾的部分;

Eg2:Content-Range: bytes 306302-604047/604048:响应中指示携带的是该资源的第306302-604047的字节,该资源共604048个字节;

客户端通过并发的请求相同资源的不同片段,来实现对某个资源的并发分块下载。从而达到快速下载的目的。目前流行的FlashGet和迅雷基本都是这个原理。

多线程下载的原理:

q      下载工具开启多个发出HTTP请求的线程;

q      每个http请求只请求资源文件的一部分:Content-Range: bytes 20000-40000/47000;

q      合并每个线程下载的文件。

你可能感兴趣的:(http,/,https)