欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > http range 下载大文件分片

http range 下载大文件分片

2025/1/10 22:03:13 来源:https://blog.csdn.net/xichji/article/details/145003648  浏览:    关键词:http range 下载大文件分片

摘自:https://www.jianshu.com/p/32c16103715a

上传分片下载也能分
HTTP 协议范围请求允许服务器只发送 HTTP 消息的一部分到客户端。范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。

检测服务器端是否支持范围请求

假如在响应中存在 Accept-Ranges 首部(并且它的值不为“none”),那么表示该服务器支持范围请求。例如,你可以使用 cURL 发送一个 HEAD 请求来进行检测。

image.png

image.png

从服务器端请求特定的范围

  • 表示第二个500字节:bytes=500-999
  • 表示最后500个字节:bytes=-500
  • 表示500字节以后的范围:bytes=500-
  • 第一个和最后一个字节:bytes=0-0,-1
  • 同时指定几个范围:bytes=500-600,601-999
  • bytes=0- 不限制

成功时服务器返回 206 Partial Content 状态码和 Content-Type:multipart/byteranges; boundary=3d6b6a416f9b5 头部,Content-Type:multipart/byteranges 表示这个响应有多个 byterange。每一部分 byterange 都有他自己的 Content-type 头部和 Content-Range,并且使用 boundary 参数对 body 进行划分。

image.png

只有指定范围的图片被返回

image.png

axios.get("http://172.16.8.24:8080/test.png", {headers: { "Range": "bytes=0-100000" }, // 字节responseType: "arraybuffer",}).then((res) => {console.log(res);resolve(res.data);}).catch((err) => {reject(err);});

总结

最后把结果拼在一起还待完善~



作者:前端早晚自习
链接:https://www.jianshu.com/p/32c16103715a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com