zoukankan      html  css  js  c++  java
  • 服务器是否支持断点续传

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

    Resumable download file Web服务器(如Apache)默认开启断点续传

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

    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字节,结果如下图:

    curl range bytes request curl 命令发送字节范围请求

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

    现在我们尝试以下方式:

    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。

     判断是否支持断点续传,其实是判断是否支持文件指针移动。在FTP中用REST 100测试,在HTTP中用CInternetFile的Seek函数测试,如果成功则支持断点续传。

    ftp:
    send command:
    "REST 1 "
    回复"350 Restarting at 1. Send STORE or RETRIEVE to initiate transfer."则支持
    HTTP:
    在HTTP header里面加上 "RANGE: bytes=13750- "
    然后检查返回头的"Content-Range: "的值

  • 相关阅读:
    KPConv针对Modelnet40的分类
    《天净沙·秋思》
    ubuntu16.04matlab中文注释乱码的解决办法
    八月六日,晴
    Deformable Convolutional Networks
    卷积核filter和kernal的区别
    木心/《眉目》
    人生若只如初见,何事秋风悲画扇
    c++从文件路径获取目录
    ICCV2019《KPConv: Flexible and Deformable Convolution for Point Clouds》
  • 原文地址:https://www.cnblogs.com/duanxz/p/5126637.html
Copyright © 2011-2022 走看看