多线程断点下载开发总结(一) - Http head Range标记
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标记相关推荐
- 多线程断点下载开发总结(二)- 多线程写文件
2019独角兽企业重金招聘Python工程师标准>>> 上篇文章提到了向服务器请求部分数据,已达到多线程下载的目的. 这里我们看看如何实现多线程写入文件.先看示例代码: String ...
- iOS开发网络篇—多线程断点下载
iOS开发网络篇-多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始, ...
- Java多线程断点下载
多线程下载已经提高了下载的效率,但是当一些特殊情况发生的时候,我们需要对程序进行处理,这样效率会更高.比如,断电断网等造成下载中断,那么我们下一次又要重新开始下载,这样效率底下,所以我们可以考虑使用断 ...
- android学习笔记---31_多线程断点下载器,下载原理实现
1.1.31_多线程断点下载器 ----------------------- 1.软件界面: 文件下载路径 text框 button 下载 点击后,下面显示下载 ...
- android 多线程断点下载,listview 模式 开始 暂停等功能
android 多线程断点下载,listview 模式 代码依次如下: 布局: <?xml version="1.0" encoding="utf-8"? ...
- 安卓客户端的多线程断点下载(SharedPreferences版)
题记:从百度百科上面我们知道,SharedPreferences是不支持多线程的,但是这次使用SharedPreferences实现了多线程断点下载.点解? 服务器端: 使用的是tomcat服务器,在 ...
- 即拿即用-Android多线程断点下载
线程下载只需要确定好下载一个文件需要多少个线程,一般来说最好为3条线程,因为线程过多会占用系统资源,而且线程间的相互竞争也会导致下载变慢. 其次下载的时候将文件分割为三份(假设用3条线程下载)下载,在 ...
- Android多线程断点下载
到华为后,信息管理特别严格,文件不能外发.所以好久都没写博客了,今天周日,老婆非要我学习.就闲来无事,写一篇博客,呵呵-- 前段时间,项目中提到了断点下载apk并静默安装的需求.本打算用应用市场成熟的 ...
- Android 多线程断点下载demo实现
先来一张效果图: 主要实现思路: 每一个下载都是通过RandomAccessFile对下载资源的总长进行切割之后,根据我们设置的线程多少进行计算之后开启多线程下载的.而每一个任务都是一个AsyncTa ...
- java 下载暂停实现_Java实现多线程断点下载(下载过程中可以暂停)
线程可以理解为下载的通道,一个线程就是一个文件的下载通道,多线程也就是同时开启好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器会对总下载线程进行平均分配. ...
最新文章
- 【线性规划和网络流24题】
- java get方法报空指针_面试的哪些事儿之JAVA程序员面试笔试题(一)
- Python3可变字符串代码实现
- Akamai托管服务应对多重网络性能挑战
- Linux 命令之 find -- 查找文件和目录/搜索文件和目录
- python 画蜘蛛_如何学习 R 绘图?
- django-卡通案例-编辑流程小结
- ios---NSNotificationCenter传值
- Linux下用ImageMagick将彩色照片转换成黑白照片
- Linux curl 常用示例你都 Get 了吗?| CSDN 博文精选
- swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用
- Android反射机制实现与原理
- centos 7.6镜像_Centos7 配置本地yum源为iso镜像
- java.lang.UnsatifiedLinkError错误一例:在eclipse中启动应用报错
- OpenGL学习笔记一
- 有关SOP封装的一些总结
- dede后台系统基本参数空白怎么办?
- Ajax请求传递中文参数
- 一个仿知乎的问答论坛
- qq炫舞显示服务器断开,快速还原win7系统玩QQ炫舞老是掉线提示与服务器断开连接的处理次序...
热门文章
- paip.提升用户体验----应用程序调用外部字体的应用..
- paip.提升安全性---选择一个安全的加密算法
- 锻造恒生O45:致广大而尽精微
- 软件测试技术体系-专业术语
- (转)深度解析挖矿的逻辑和技术实现
- (转)智能投顾只能这么搞!美国证监会发15页指南
- OTA时代来了!由新一代私有云揭开序幕
- 【优化算法】闪电连接过程优化算法(LAPO)【含Matlab源码 1444期】
- 【图像分割】基于matalb灰狼算法最小交叉熵多阈值图像分割【含Matlab源码 903期】
- 【手势识别】基于matlab k-means聚类手势识别【含Matlab源码 386期】