Http服務器有很多,比如,比較著名的有Apache、Nginx等,Apache會默認開啟對斷點續傳的支持。因此,如果直接通過Web服務器來提供文件的下載,可以不必做特別的配置,即可享受到斷點續傳的好處。斷點續傳是在發起HTTP請求的時候加入RANGE頭來告訴服務器客戶端已經下載了多少字節。等所有這些請求都返回之后,再把得到的內容一塊一塊的拼接起來得到完整的資源。簡單來說,判斷服務器是否支持斷點續傳,看Web服務器是否支持Range請求即可。
- 方法1:
curl -i --range 0-9 https://image.jianke.com/upload/prodimage/201712wm/201712495031691.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10 100 10 0 0 1 0 0:00:03 0:00:03 --:--:-- 322HTTP/1.1 206 Partial Content
Server: nginx
Date: Mon, 16 Sep 2019 06:28:11 GMT
Content-Type: application/octet-stream
Content-Length: 1001
Last-Modified: Wed, 31 Jul 2019 04:42:36 GMT
Connection: keep-alive
ETag: "5d411c3c-a78d40f"
Content-Range: bytes 0-1000/175690767
若能夠找到 Content-Range,則表明服務器支持斷點續傳。有些服務器還會返回 Accept-Ranges,輸出結果 Accept-Ranges: bytes ,說明服務器支持按字節下載。