成长值: 348 签到天数: 4741 天
[LV.Master]伴坛终老
发表于 2017/12/7 03:03
|
显示全部楼层
| 阅读模式
| Google Chrome 62.0.3202.94
| Windows 10
HTTP协议中的Range: bytes=0- 是什么意思,为什么返回206状态码,断点续传分段范围请求 curl -r参数下载文件方法
HTTP中的Range就是分段请求字节数,也是大家经常说的断点续传。Range头域可以请求实体的一个或者多个子范围,Range的值为0表示第一个字节,也就是Range计算字节数是从0开始的
请求资源的部分内容(不包括响应头的大小),单位是byte,即字节,从0开始.
如果服务器能够正常响应的话,服务器会返回 206 Partial Content 的状态码
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0,-1
同时指定几个范围:bytes=500-600,601-999
根据HTTP协议标准,浏览器必须会默认对视频文件请求Range: bytes=0- 头部信息
Range: bytes=0-如果客户端浏览器请求RANGE: bytes=0-;直接透传RANGE: bytes=0-;直接拉取整个文件内容
Range: bytes=0-0 可以探测获取文件大小
curl -r 0-0 -i https://1.itzmx.com/filestores/2015/03/02//fb49f8505c2b9c072d2249dc0c9d8b73.mp3 复制代码
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-0/2649904
Strict-Transport-Security: max-age=31104000
Server: kangle/sakura
Date: Wed, 06 Dec 2017 18:04:02 GMT
Last-Modified: Mon, 02 Mar 2015 11:00:19 GMT
Content-Type: audio/mpeg
X-Cache: MISS from kangle web server niaoyun
Age: 3177
X-Cache: HIT from Anti-DDoS
Content-Length: 1
Connection: close
Range: bytes=0-999 ,利用curl下载1000个字节,注意下载不要带-i参数,不然会把头部数据写入文件导致md5变化
curl -r 0-999 https://1.itzmx.com/filestores/2015/03/02//fb49f8505c2b9c072d2249dc0c9d8b73.mp3 -o part1 复制代码
Range: bytes=1000- ,利用curl下载1000字节后的所有数据
curl -r 1000- https://1.itzmx.com/filestores/2015/03/02//fb49f8505c2b9c072d2249dc0c9d8b73.mp3 -o part2 复制代码
多个字节段分段合并方法
cat part1 part2 >> fb49f8505c2b9c072d2249dc0c9d8b73.mp3 复制代码
完整的文件下载
curl -r 0- https://1.itzmx.com/filestores/2015/03/02//fb49f8505c2b9c072d2249dc0c9d8b73.mp3 -o fb49f8505c2b9c072d2249dc0c9d8b73.mp3 复制代码