断点续传和多线程下载
断电续传多线程下载
HTTP是通过在Header里两个参数实现的 客户端发送请求时对应的是
Range服务器端响应时对应的是 Content-Range
断点续传和多线程下载
Range
1,Range:bytes = 0-499
2,Range:bytes = 500-999
3,Range:bytes -500
4,Range:bytes = 500-
5,Range:bytes = 500-600,601-999
6,用于请求头种 指定第一个字节位置和最后一个字节位置
一般格式:Range:(unit=first byte pos)-[last byte pos]
Content-Range
1,用于响应头种 在发出带Range的请求后 服务器会在Content-Range头部
返回当前接收的范围和文件总大小
2,一般格式: Content-Range:bytes(unit first byte pos)-[last byte pos]/[entity legth]
3,而且在响应完成后 返回的响应头内容也不同
HTTP/1.1 200 OK (不使用断点续传方式)
HTTP/1.1 206 Partial Content(使用断电续传方式)
断点续传过程
1,客户端下载一个1024的文件 已经下载了其中512K
2,网络中断,客户端请求续传 因此需要在HTTP头中声明本次需要继续传的片段
Range:bytes=512000-这个头通知服务端从文件的512K位置开始传输文件
3,服务端受到断电续传请求 从文件512K位置开始传输并且在HTTP头中增加
Content-Range:bytes 512000-/1024000
并且此时服务端返回的HTTP状态码 应该是206 而不是200
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix