Skip to content
This repository has been archived by the owner on Apr 29, 2021. It is now read-only.

Latest commit

 

History

History
36 lines (33 loc) · 1.69 KB

BreakpointContinualTransfer.md

File metadata and controls

36 lines (33 loc) · 1.69 KB

断点续传下载的效果

客户端能够实现分段下载, 中断传输后只要记住上次下载的位置, 就能够续传而不需要重传

客户端可以实现进度条展示, 能够手动暂停传输和继续传输

断点续传下载相关的几个HTTP头

Accept-Ranges: bytes

服务端响应的header, 用于告诉客户端我支持断点续传, 你可以指定Range来下载文件的某一部分

Range : 100- 或 100-1000, 自定义

客户端请求的header, 用于告诉服务端我想下载文件的那一部分内容, 100-表示下载100字节之后的文件内容, 100-1000表示下载offset为100-1000以内的这一段文件内容; 如果不指定Range, 默认是希望下载整个文件内容

Content-Range: bytes=0-500/1000

服务端响应的header, 用于告诉客户端我返回的文件内容区间是多少, 比如这里的0-500是指文件的前面500个字节, 而整个文件大小为1000;

Content-Length: 500

服务端响应的header, 用于告诉客户端我返回的内容长度是多少, 比如这里的500表示当前总共返回了500个字节的内容

Accept: 比如image/gif, image/jpeg 或 */*

客户端请求的header, 用于告诉服务端我可接受的响应内容(文件)类型, 比如image/gif, image/jpeg; */*表示我什么类型都接受

Last-Modified: Thur, 28 Mar 2019 13:56:55 GMT

服务端响应的header, 非必须, 用于告诉客户端这个文件资源最后一次的修改时间; 如果客户端在下载文件的过程中, 资源被修改了, 可以通过这个header来感知, 从而客户端可能要考虑重新下载.

图示文件断点下载的简要过程

V7Ufl4.png