HTTP断点续传原理

Content-Range: bytes 0-10/1367387

Connection: keep-alive

关联header如下:

断点续传,尽管回到文件的一部分,则利用HTTP
206状态码;虽然回去整个文件,则采取HTTP 200响应码。

Server: nginx/1.4.2

Content-Type: application/octet-stream

    Accept-Ranges:bytes    表示援助以bytes为单位展开传输。

ETag: “55dc2dba-14dd5b”

HTTP 1.1默认补助断点续传。

关于ETag

    Ranges:    bytes=0~N 下载第0-N字节范围的情节

Date: Fri, 20 Oct 2017 03:28:44 GMT

参考:

Accept-Ranges:用于server到client的回应,client通过该自段判断server是否扶助断点续传。

HTTP/1.1 206 Partial Content(使用断点续传)

关于HTTP 206

 

 

    Ranges:    (unit=first byte pos)-[last byte pos]

 

 

Last-Modified: Tue, 25 Aug 2015 08:56:26 GMT

curl -i –range 0-9 url   
响应中包含Accept-Range或者Content-Ranges则象征襄助。

美学原理,Content-Ranges:用于sever到client的应对,与Accept-Ranges在同一个报文内,通过该字段指定了归来的文件资源的字节范围。格式如下:

 

If-Range:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Range

HTTP/1.1 206 Partial Content

    Accept-Ranges:none     表示不援助断点续传

    Ranges:    bytes=M-N 下载第M-N字节范围的始末

 

    Content-Ranges:bytes M-N/size 大小为size的公文的第M-N字节范围的始末

If-Range:用于客户端到服务端的央求,用于判断实体是否爆发改变,必须与Range配合使用。若实体未被涂改,则响应所缺少的这有些;否则,响应整个新的实业。

Content-Length: 11

HTTP/1.1 200 OK(不使用断点续传)

 

 

 

Range:用于客户端到服务端的央浼,可以经过改字段指定下载文件的某一段大小及其单位,字节偏移从0起先。典型格式:

    Ranges:    bytes=-N 下载最终N字节内容

The If-Range HTTP request header makes a range request conditional:
if the condition is fulfilled, the range request will be issued and the
server sends back
206 Partial
Content answer with the appropriate body. If the condition is not
fulfilled, the full resource is sent back, with
200 OK status.

 

ETag用于标识/保证文件的唯一性、完整性,每回文件有革新该值就会生成。

    Ranges:    bytes=4000- 下载从第4000字节开端到文件截至部分

断点续传检查: