首先我們要下載一個 http://192.168.1.203/test.7z
透過Chrome 開發人員工具來看一下,一般我們直接下載一個檔案
head內容是什麼。
Request Head
GET /test.7z HTTP/1.1 Host: 192.168.1.203 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2
Response Head
HTTP/1.1 200 OK Date: Tue, 07 Apr 2015 00:34:58 GMT Server: Apache/2.2.15 (Oracle) Last-Modified: Tue, 07 Apr 2015 00:33:02 GMT ETag: "1804d0-98e8754-513178ea80d56" Accept-Ranges: bytes Content-Length: 160335700 Connection: close Content-Type: text/plain; charset=UTF-8
首先我們發現到伺服器收到Requset之後,回應回來的狀態碼是 200,跟據WIKI上的解釋
200 OK : 請求已成功,請求所希望的響應頭或資料體將隨此響應返回。
也就我們要下載的teset.7z 會整包下載回來,但這樣就無法達成續傳的要求。
Range: bytes 20-40
20-40指的是從第20個byte到40個byte (共21個)。
你可以用curl指令來測試伺服器是否支援 Range byte
範例如下,請將網址換成實際上用的URL
以上述例子,如果輸出為21,表示伺服器支援,若回傳值為檔案完整大小,表示不支援。
你可以用curl指令來測試伺服器是否支援 Range byte
範例如下,請將網址換成實際上用的URL
curl --silent --range 20-40 http://curl.haxx.se/docs/manpage.html | wc -c
以上述例子,如果輸出為21,表示伺服器支援,若回傳值為檔案完整大小,表示不支援。
若要開啟伺服器支援rangle byte,修改Apache 設定檔
參考來源:
http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/reference/HTTPservice.html
<Directory "/opt/local_htdocs"> Options FollowSymLinks Indexes AllowOverride None Order allow,deny Allow from all Header set Accept-Ranges bytes </Directory>
參考來源:
http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/reference/HTTPservice.html
沒有留言:
張貼留言