断点续传和多线程下载

断电续传多线程下载

  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

posted @   帕拉利斯  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示