1、先检测是否支持分块下载,如果不支持,则直接下载,若支持,则将剩余内容分块下载。
2、各个分块下载时保存到各自临时文件,等到所有分块下载后,合并临时文件
3、删除临时文件
原理:
Http 协议定义了分块传输的响应header字段,但具体是否支持取决于Server的实现,我们可以指定请求头的“range”字段来验证服务器是否支持分块传输。
例如:curl -H "Range:bytes=0-10" http://download.dcloud.net.cn/macos.zip
若服务器支持分块传输,则返回状态码为206,同时响应内部头中包含“Content-Range”字段,如果不支持则不包含。
分块下载实际用处:常见场景是断点续传
网友评论