关键词:
断点续传从下载断开的位置,继续下载,直到下载完整
四个必须的HTTP头域
-
Range
用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:
Range:(unit=first byte pos)-[last byte pos]
Range : bytes=50- 从第50个字节开始到最后一个字节
Range : bytes=-70 最后的70个字节
Range : bytes=50-100 从第50字节到100字节 -
Content-Range
用于响应头,指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式:
Content-Range: bytes (unit first byte pos) - [last byte pos]/[entity legth] -
Accept-Ranges
Accept-Ranges:bytes // 告诉客户端支持断点传输 - Content-Length
内容长度
HTTP返回码
200 OK(一切正常)
206 Partial Content(服务器已经成功处理了部分内容)
416 Requested Range Not Satisfiable 对方(客户端)发来的Range 请求头不合理
实例1
请求:
GET /123.zip HTTP/1.1
响应:
HTTP/1.1 200 OK
Accept-Ranges : bytes //告诉客户端支持断点传输
Content-Length : 1900 //文件总大小
Content-Type : image/jpeg //文件类型
中间停止下载,重新发起请求
请求:
GET /123.zip HTTP/1.1
Range:bytes=580-
响应:
HTTP/1.1 206 Partial Content
Accept-Ranges : bytes
Content-Type : image/jpeg //文件类型
Content-Length : (1900 - 580) //长度则不是总长度了,而580到1900共有多少字节。
Content-Range :bytes 580-(1900-1 ) / 1900 //因为到了文件总大小了,所以指定范围永远不能超过等于总大小;但是到了最后一个字节必须输出出去,完全是写法问题。
实例2
请求:
GET /test.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:文件总大小
基于http的文件断点续传实现(代码片段)
基于Http的文件断点续传实现1:断点续传的介绍客户端软件断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如... 查看详情
4gb以上,超大文件上传,http断点续传,如何实现?(代码片段)
...08;大都数是4GB以上)的http上传,并且要求支持http断点续传。笔者在以前介绍了实现大文件上传的一些基本概念,其实非常简单,这里在简要归纳一下,方便记忆!服务器端由C语言实现,而不是用java、... 查看详情
大文件上传服务器支持超大文件http断点续传实践总结(代码片段)
...c;需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆:服务器端由C语言实现,而不是用java、PHP这种解释型语言来实现 查看详情
图解:http范围请求,助力断点续传多线程下载的核心原理(代码片段)
题图:byCharlesLoyer一、序Hi,大家好,我是承香墨影!HTTP协议在网络知识中占据了重要的地位,HTTP协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成。大多数HTTP协议的使用方式,都是依赖设置不同... 查看详情
大文件上传服务器支持超大文件http断点续传实践总结(代码片段)
...c;需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆:服务器端由C语言实现,而不是 查看详情
csharphttp断点续传功能测试(代码片段)
断点续传的实现(代码片段)
...响应图解:获取文件ETag的函数:下载文件(断点续传)的函数:从上次断开位置继续下载HTTP断点续传:实现原理(客户端):1.客户端保存当前已下载文件的位置或大小。2.在下次请求时告诉服... 查看详情
ceph储存的s3接口实现(支持断点续传)(代码片段)
最近公司准备接ceph储存,研究了一番,准备用亚马逊的s3接口实现,实现类如下:/***Title:S3Manager*Description:Ceph储存的s3接口实现,参考文档:*https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/RetrievingObjectUsingJava.html*http://docs.ceph.org.cn 查看详情
flume高可用+断点续传(代码片段)
Flume高可用集群工欲善其事,必先利其器。感谢以下博主:https://www.cnblogs.com/qingyunzong/p/8994494.htmlhttps://blog.csdn.net/peng_0129/article/details/80793440https://blog.csdn.net/suojie123/article/details/86577935https://blog.csdn.net/kelong_xhu/article/details/42677045http... 查看详情
curl命令(代码片段)
...P上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道(pro 查看详情
rsync实现断点续传(代码片段)
...比较悲剧了。这时候可以考虑使用rsync命令替代scp,实现断点续传文件。试验:rsync使用环境:2台RHEL5.7需求:主机A传送文件夹TestDB到主机Brsync-rP--rsh=ssh/home/oracle/TestDB/[email protected]192.168.1.1 查看详情
phpphp在操作断点续传时文件如何分割合并(代码片段)
php断点续传之文件上传与文件下载(代码片段)
下载:<?php/**php下载类,支持断点续传*Date:2013-06-30*Author:fdipzone*Ver:1.0**Func:*publicdownload:下载文件*publicsetSpeed:设置下载速度*privategetRange:获取header中Range*/classFileDownload//classstartprivate$_speed=512;// 查看详情
afnetworking实现程序重新启动时的断点续传(代码片段)
今天需要用AFNetworking实现断点续传的功能,但是在进行了一番研究之后,发现AFNetworking虽然支持下载文件的暂停和继续,但是程序重新启动后再次下载无法进行续传。网上有说可以通过AFDownloadRequestOperation这个AFNetworki... 查看详情
讲讲断点续传那点儿事(代码片段)
这次想来讲讲断点续传,以前没相关需求,所以一直没去接触,近阶段了解了之后,其实并不复杂,那么也便来写一篇记录一下,分享给大伙,也方便自己后续查阅。提问Q1:如果你的app需要下载大文件,那么是否有方法可以缩... 查看详情
断点续传(代码片段)
有时候我们爬取数据跑了半天,突然报错了,例如网络中断,我们想继续爬取,不需程序从头开始爬取,可以采取下面的方案要想程序继续从断开的位置爬取,最好的方案就是将每次爬取的url存储到数据库中,程序每爬取一... 查看详情
webuploader与django进行断点续传,大文件上传(代码片段)
需要实现的效果如下需要使用的 jsjquery.jswebuploader.hshashmap.js路由fromdjango.urlsimportpathfrom.importviewsurlpatterns=[path('index/',views.index),path('checkChunk/',views.checkChunk,name= 查看详情
no.4文件断点续传(server)(代码片段)
importsocketserver,os,json,struct,hashlibcodes="文件已存在":1001,"文件不存在":1002File_Path=r‘C:\Users\17303\Desktop\电脑的组成.avi‘#需要传的文件路径File_Size=os.path.getsize(File_Path)f=open(File_Path,"rb")md5=hashlib.md 查看详情