2019独角兽企业重金招聘Python工程师标准>>>

很久之前用DotNet 做了一个多线程的断点下载工具,今天突然需要用到一些东西,竟然一时想不起了,翻了翻源码,这里简单总结一下。

断点下载 的基本协议采用的是Http 下载,那么服务器如何响应断点请求一个完整文件的部分数据呢,这里需要用到 Http 协议头 的 Range标记,客户端发起请求的时候加上 Range标记 例如,Range:bytes=0-128 ,表示请求的文件的第1个到128个字节的数据,这时候服务器响应下载时会返回 Http 响应头:Content-Range:  bytes  0-128/200 ,这里200是文件的总大小。下面是一个请求响应头的详细说明。

请求下载整个文件: 
GET  /file.rar  HTTP/1.1 
Connection:  close 
Host:  116.1.219.219 
Range:  bytes=0-801 //一般请求下载整个文件是bytes=0- 或不用这个头 
一般正常回应 
HTTP/1.1 200 OK 
Content-Length:  801      
Content-Type:  application/octet-stream  
Content-Range:  bytes  0-800/801 //801

注意:如果用户的请求中含有range ,则服务器的相应代码为206。
206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

转载于:https://my.oschina.net/congqian/blog/134344

多线程断点下载开发总结(一) - Http head Range标记相关推荐

  1. 多线程断点下载开发总结(二)- 多线程写文件

    2019独角兽企业重金招聘Python工程师标准>>> 上篇文章提到了向服务器请求部分数据,已达到多线程下载的目的. 这里我们看看如何实现多线程写入文件.先看示例代码: String ...

  2. iOS开发网络篇—多线程断点下载

    iOS开发网络篇-多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始, ...

  3. Java多线程断点下载

    多线程下载已经提高了下载的效率,但是当一些特殊情况发生的时候,我们需要对程序进行处理,这样效率会更高.比如,断电断网等造成下载中断,那么我们下一次又要重新开始下载,这样效率底下,所以我们可以考虑使用断 ...

  4. android学习笔记---31_多线程断点下载器,下载原理实现

    1.1.31_多线程断点下载器 ----------------------- 1.软件界面:   文件下载路径              text框   button 下载   点击后,下面显示下载 ...

  5. android 多线程断点下载,listview 模式 开始 暂停等功能

    android 多线程断点下载,listview 模式 代码依次如下: 布局: <?xml version="1.0" encoding="utf-8"? ...

  6. 安卓客户端的多线程断点下载(SharedPreferences版)

    题记:从百度百科上面我们知道,SharedPreferences是不支持多线程的,但是这次使用SharedPreferences实现了多线程断点下载.点解? 服务器端: 使用的是tomcat服务器,在 ...

  7. 即拿即用-Android多线程断点下载

    线程下载只需要确定好下载一个文件需要多少个线程,一般来说最好为3条线程,因为线程过多会占用系统资源,而且线程间的相互竞争也会导致下载变慢. 其次下载的时候将文件分割为三份(假设用3条线程下载)下载,在 ...

  8. Android多线程断点下载

    到华为后,信息管理特别严格,文件不能外发.所以好久都没写博客了,今天周日,老婆非要我学习.就闲来无事,写一篇博客,呵呵-- 前段时间,项目中提到了断点下载apk并静默安装的需求.本打算用应用市场成熟的 ...

  9. Android 多线程断点下载demo实现

    先来一张效果图: 主要实现思路: 每一个下载都是通过RandomAccessFile对下载资源的总长进行切割之后,根据我们设置的线程多少进行计算之后开启多线程下载的.而每一个任务都是一个AsyncTa ...

  10. java 下载暂停实现_Java实现多线程断点下载(下载过程中可以暂停)

    线程可以理解为下载的通道,一个线程就是一个文件的下载通道,多线程也就是同时开启好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器会对总下载线程进行平均分配. ...

最新文章

  1. 【线性规划和网络流24题】
  2. java get方法报空指针_面试的哪些事儿之JAVA程序员面试笔试题(一)
  3. Python3可变字符串代码实现
  4. Akamai托管服务应对多重网络性能挑战
  5. Linux 命令之 find -- 查找文件和目录/搜索文件和目录
  6. python 画蜘蛛_如何学习 R 绘图?
  7. django-卡通案例-编辑流程小结
  8. ios---NSNotificationCenter传值
  9. Linux下用ImageMagick将彩色照片转换成黑白照片
  10. Linux curl 常用示例你都 Get 了吗?| CSDN 博文精选
  11. swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用
  12. Android反射机制实现与原理
  13. centos 7.6镜像_Centos7 配置本地yum源为iso镜像
  14. java.lang.UnsatifiedLinkError错误一例:在eclipse中启动应用报错
  15. OpenGL学习笔记一
  16. 有关SOP封装的一些总结
  17. dede后台系统基本参数空白怎么办?
  18. Ajax请求传递中文参数
  19. 一个仿知乎的问答论坛
  20. qq炫舞显示服务器断开,快速还原win7系统玩QQ炫舞老是掉线提示与服务器断开连接的处理次序...

热门文章

  1. paip.提升用户体验----应用程序调用外部字体的应用..
  2. paip.提升安全性---选择一个安全的加密算法
  3. 锻造恒生O45:致广大而尽精微
  4. 软件测试技术体系-专业术语
  5. (转)深度解析挖矿的逻辑和技术实现
  6. (转)智能投顾只能这么搞!美国证监会发15页指南
  7. OTA时代来了!由新一代私有云揭开序幕
  8. 【优化算法】闪电连接过程优化算法(LAPO)【含Matlab源码 1444期】
  9. 【图像分割】基于matalb灰狼算法最小交叉熵多阈值图像分割【含Matlab源码 903期】
  10. 【手势识别】基于matlab k-means聚类手势识别【含Matlab源码 386期】