Http断点下载实简单讲解
Http文件下载的普通模式就不多说了,断点下载与普通模式不一样的是,断点下载的头信息里面增加了一个属性
?
1 |
|
这里RANGE代表客户端要从那个位置开始下载
而服务器返回时和普通模式不同的是:
1:多了一个属性
1 |
|
注意还有一些属性要设置,和普通模式一样,例如Content-Length属性
2:返回码为206
然后我们来看一段实际应用中的断点下载代码,注意这里我使用的是SpringMVC模式开发的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
其重点在于HTTP协议里面属性有一些不同的地方,还有就是InputStream跳过不需要读的文件,和注意关闭流。
通过核心代码也可以看到,其实这和是不是SpringMVC没多大关系,所以你可以很容易的应用到你的项目中。
例如对于这段代码,我访问如下路径
http://localhost/downOdex.do?odexName=D03BFBAE35BEC791092E52EC907D1F69.ZIP
使用浏览器自带的下载工具进行下载,这样可以控制下载和暂停,来观察断点下载的过程。
点击暂停会看到下载暂停下来
可以选择继续下载。
过程中你会看到,客户端不会马上把文件下载下来,而是慢慢下载,就是因为我在程序中增加了停顿来查看这个下载过程
1 |
|
然后我们的缓冲区是
1 |
|
所以,每秒的速度就是100KB理论速度,因为是本地,所以接近100KB每秒。
Http断点下载实简单讲解相关推荐
- Java使用HttpUrlConnection实现多线程断点下载
相信很多同学在面试的时候,经常会被面试官问到这么一个问题:请问如何实现断点下载,即在文件未下载完成时,保存进度,在下次继续下载.要实现这个功能其实并不难,只要使用一个临时文件记录当前的下载进度,然后在 ...
- 21_RS485简单讲解
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for ...
- RCNN算法思想简单讲解概述————(究极简单的讲述和理解)
学习的过程中发现一个问题,如果不能大概的了解一下一个算法的思想直接去看他的论文,或者去看他算法的讲解就很痛苦,看不懂,学的效率也非常低,类似我之前发的RCNN论文精度的博客.RCNN目标 ...
- android 断点下载的实现,Android实现断点下载的方法
最近做的项目中需要实现断点下载,即用户一次下载可以分多次进行,下载过程可以中断,在目前大多数的带离线缓存的软件都是需要实现这一功能.本文阐述了通过sqlite3简单实现了一个具有断点下载功能的demo ...
- 打印 上一主题 下一主题 简单讲解UEFI及MBR,及UEFI系统安装引导修复
http://bbs.sysceo.com/forum.php?mod=viewthread&tid=14225&extra= 简单讲解UEFI及MBR MBR用于win平台 GPT主 ...
- 树莓派4B系统搭建(实操讲解巨细版)
一.搭建准备 树莓派介绍: Raspberry Pi(中文名为"树莓派",简写为RPi 是为学生计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux ...
- Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)
Xcode里下载太慢就算了,他不支持断点下载,一直一直一直下载失败,根本就装不上嘛!!! 添加模拟器.下载需要的iOS版本 添加模拟器 没有要的iOS版本则点击Download more 然而因为Xc ...
- linux nas解决方案_畅快玩转NAS 篇一:Linux权限简单讲解
畅快玩转NAS 篇一:Linux权限简单讲解 2020-01-22 19:02:28 35点赞 189收藏 8评论 你是AMD Yes党?还是intel和NVIDIA的忠实簇拥呢?最新一届#装机大师赛 ...
- ruby安装顺序简单讲解
ruby安装顺序简单讲解 --孙琨SealSun 上述软件,安装环境皆为windows 64位下,适合像我一样懒得装Linux的同学.以下为安装顺序 一.安装Ruby 搜索rubyinstaller- ...
- ST-LINK v2下载器简单使用
ST LINK v2下载器简单使用过程 文章目录 ST LINK v2下载器简单使用过程 前言 1.驱动安装 1.1 驱动安装常规步骤 1.2 驱动失败解决方法 2.代码下载&调试 2.1 代 ...
最新文章
- ICMP隧道工具ptunnel
- couchdb 任意命令执行漏洞(cve-2017-12636)
- 3000 字说说跨域!面试官听完之后露出了满意的笑容
- JimuReport积木报表1.3.3 版本发布,可视化报表工具
- pandas打印某一列_2. Python--pandas库
- c函数strstr和sscanf组合高级技巧
- windows NFS 配置
- 指针写字符比较c语言,利用指针进行字符串大小比较出现的问题
- swift拖放的按钮如何在后台设置点击事件 www.cnblogs.com/foxting/p/SWIFT.html
- 路由器刷php,【图片】【经验分享】路由器刷DDWRT认证锐捷校园网全程实录【哈尔滨工业大学吧】_百度贴吧...
- 2022春季苹果发布会将会发布什么?
- 硬件蓝牙测试软件,【原创】聊聊蓝牙测试专用硬件工具-Ubertooth
- h5阿里云播放器 常规使用
- 大数据Hive 面试以及知识点
- GBase 8s 块(chunk)
- 易数云数据抓取词云图制作
- 云笔记有哪些好用的功能,这4款云笔记一定要试试
- Micrel的1588方案
- 压缩机振动探头本特利330904-06-14-05-02-00
- android 手机号码隐藏其中4位
热门文章
- 网易云系列爬虫-采集歌单内歌曲热评
- PAT乙级刷题感想及踩坑总结
- GD32 笔记 01:如何用 Keil 新建 GD32E230 工程
- 服务器系统2008 64,服务器主机server 2008 R2 操作系统漏洞
- 烽火HG680-R-MSO9280-河南电信_湖北联通免费刷机固件及说明
- 软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始
- 杨永强“兑”现承诺 乐视云发力VaaS
- CodeBlocks下载安装与SDL下载使用配置教程
- FLAG_ACTIVITY_CLEAR_TOP和singleTask的区别
- Java数组排序的方法