所谓断点下载,也就是要从文件已经下载的地方开始继续下载。
在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了。一般断点下载时要用到 Range 。

Range 字段

请求头(Request Header)中,指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分,一般格式:

Range: bytes=[first byte pos]-[last byte pos]

例如:

Range: bytes=1173546-

或者

Range: bytes=1173546-2173546

例:请求下载整个文件:

Request Header

GET /test.rar HTTP/1.1
Connection: close
Host: 116.1.219.219
//一般请求下载整个文件是bytes=0-
//或不用这个头,一般正常回应
Range: bytes=0-801

Range只是用来支持下载的,因为本地客户端在发起请求的时候能够通过文件的大小判断自己下到哪了;但是上传是不行的,即使客户端有记录进度,也不代表这些数据真的到了服务器,所以上传是用的切块,下载是用的range续传

举个例子:

Http文件断点下载(Http请求头的Range字段)相关推荐

  1. 使用NSURLConnection实现大文件断点下载

    使用NSURLConnection实现大文件断点下载 由于是实现大文件的断点下载,不是下载一般图片什么的.在设计这个类的时候本身就不会考虑把下载的文件缓存到内存中,而是直接写到文件系统. 要实现断点下 ...

  2. 跳转页面下载文件需要附带Token请求头,如何实现ajax下载?

    我们的思路其实就是将二进制流以ajax的方式down下来,存储进blob当中,在采取base64的方式进行转换,因为a标签是可以直接访问base64的. downExcel() {var xhr = ...

  3. NSURLSessionDataTask与NSOperationQueue实现多文件断点下载(任意时刻终止进程,重启应用,自动重启下载)...

    效果展示 gif有点大,直接连接:7qnbrb.com1.z0.glb.clouddn.com/download.gi- 知识要点 NSOperationQueue线程队列的管理 NSURLSessi ...

  4. Retrofit 2.0 超能实践(四),完成大文件断点下载

    作者:码小白 文/CSDN 博客 本文出自:http://blog.csdn.net/sk719887916/article/details/51988507 码小白 通过前几篇系统的介绍和综合运用, ...

  5. SpringBoot+Vue 实现大文件断点下载

    目录 效果 代码 SpringBoot Vue 效果 步骤 点击下载 在输入框输入下载的文件名称 点击暂停 再次点击开始 下载完成 代码 SpringBoot pom <!-- 做断点下载使用- ...

  6. Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)

    form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...

  7. python实现文件断点下载

    1.需求: 实现文件的断点下载 2.实现: #!/usr/bin/python # encoding=utf-8 import requests, sys, os, re, timeclass dow ...

  8. http请求头有哪些字段

    >>请求头字段的具体含义 Accept:浏览器可接受的MIME类型. Accept-Charset:浏览器可接受的字符集. Accept-Encoding:浏览器能够进行解码的数据编码方式 ...

  9. HTTP请求头中各字段解释

    Accept : 浏览器(或者其他基于HTTP的客户端程序)可以接收的内容类型(Content-types),例如 Accept: text/plain Accept-Charset:浏览器能识别的字 ...

  10. Java实现视频边加载边播放(利用http请求头的Range)

    如果直接通过静态资源访问的视频,就不用管,tomcat自带这种方式 如果通过springboot接口,就需要自己写.前端直接使用video组件,会自动实现.后台使用下面方法,可作为工具函数. publ ...

最新文章

  1. JAVA WEB 乱码问题解决方案
  2. 离职后,我们该如何处理社保!
  3. Java 字符串 String 与整数型 int 之间的转换
  4. Kogito,ergo规则:从知识到服务,轻松自如
  5. 51单片机50个实例代码_【附代码】51单片机电子密码锁教程
  6. 考研 | 研究生考试入门,送给刚刚进入寒假的大三的你
  7. JavaScript中的ParseInt(08)和“09”返回0的原因分析及解决办法
  8. jQuery Moblie 页面模版(基础)
  9. 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
  10. codeforces 701A A. Cards(水题)
  11. sqlserver 当月、 时间_sqlserver 获取时间年月日时分秒
  12. HBase项目之微博系统
  13. 误删除文件恢复工具免费下载
  14. 戴口罩直播1天卖3亿的雷军,像极了曾经的李嘉诚
  15. 吐槽、吐槽、吐槽!!!!!!
  16. Gamma校正与线性空间
  17. 0. DRF之软件开发模式CBV源码解析
  18. 智慧高速建设的探索与思考【附PPT】
  19. bugku:简单的套娃
  20. 《Neural Machine Translation: Challenges, Progress and Future》译文分享

热门文章

  1. OO第三单元(地铁,JML)单元总结
  2. 信号与系统:希尔伯特变换
  3. 如何下载互联网上的所有网页
  4. GEE开发之Landsat8计算NDWI和数据分析
  5. jar类型文件图标不显示_显示的JAR文件
  6. 番茄时间管理法:一个番茄是如何让你工作更有效率的
  7. 女士品茶 | The Lady Tasting Tea | 统计学史
  8. Spring Boot LiveReload 插件使用
  9. 快速开发:普元EOS平台简介
  10. 分段三次hermite插值python