服务器是否支持断点续传

通常情况下,Web服务器(如Apache)会默认开启对断点续传的支持。因此,如果直接通过Web服务器来提供文件的下载,可以不必做特别的配置,即可享受到断点续传的好处。断点续传是在发起HTTP请求的时候加入RANGE头来告诉服务器客户端已经下载了多少字节。等所有这些请求都返回之后,再把得到的内容一块一块的拼接起来得到完整的资源。

你可以通过以下的命令来测试一下。

Linux 测试服务器是否支持断点续传
localhost [~]# wget -S http://httpd.apache.org/images/httpd_logo_wide_new.png 2>&1 | grep ‘Accept-Ranges’ 
  Accept-Ranges: bytes

输出结果 Accept-Ranges: bytes ,说明服务器支持按字节下载。

curl 命令发送字节范围下载

curl –range 0-99 http://images.apple.com/home/images/billboard_iphone_hero.jpg

这样可以到最开始99字节,结果如下图:

说明从服务器端按字节范围下载是完全没有问题的。

现在我们尝试以下方式:

1、一次性下载整个图片。

localhost [~]# curl –range 0-98315 http://images.apple.com/home/images/billboard_iphone_hero.jpg > test.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 98316 100 98316 0 0 524k 0 –:–:– –:–:– –:—:— 527k

完成后,test.jpg完全等于billboard_iphone_hero.jpg,文件大小为98,316 字节。

注意:字节是从0开始,结束字节为总字节长度 减 1。

2、分成3次下载,最后整合为一个文件。

localhost [~]# curl –range 0-1000 http://images.apple.com/home/images/billboard_iphone_hero.jpg > download_1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1001 100 1001 0 0 10166 0 –:–:– –:–:– –:–:– 10319
localhost [~]# curl –range 1001-10000 http://images.apple.com/home/images/billboard_iphone_hero.jpg > download_2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9000 100 9000 0 0 124k 0 –:–:– –:–:– –:–:– 219k
localhost [~]# curl –range 10001-98315 http://images.apple.com/home/images/billboard_iphone_hero.jpg > download_3
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 88315 100 88315 0 0 611k 0 –:–:– –:–:– –:–:– 616k
localhost [~]# cat download_1 download_2 download_3 > last.jpg

最终获得合并后的文件,last.jpg完全等于billboard_iphone_hero.jpg,文件大小为98,316 字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值