## 下載機制
資源的下載采用`HTTP GET`方式(詳見[RFC2616 標準](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35))。下載過程所需的參數作為URL參數:
~~~
http://<domain>/<key>?<param1>=<value1>&<param2>=<value2>...
~~~
下載過程也通過標準的HTTP頭`Range`字段支持分片下載。用戶可以在下載時通過設定該字段指定只下載該資源的一部分內容:
~~~
Range: bytes=<first-byte-pos>-<last-byte-pos>
~~~
支持`Range`字段相當于提供了斷點續傳功能,對于大資源的下載可以提供比較好的用戶體驗,比如暫停下載、網絡中斷并恢復后繼續下載。
在移動應用我們經常看到一個設置叫**只在WIFI連接時下載**。這個功能就可以通過資源下載對`Range`字段的支持而比較容易的實現。客戶端通過在網絡連接切換時判斷當前連接類型而自動判斷是否應該暫停下載,這樣可以避免因為大資源的下載而耗盡3G流量(比如安裝包的下載)。
## 下載響應
資源下載的響應符合HTTP GET的規范,比如200表示下載成功。除了標準的HTTP字段比如`Content-Type`、`Content-Length`外還會攜帶一些擴展字段,如`ETag`、`X-Log`、`X-Reqid`等。這些擴展字段非常有助于排查問題。
關于HTTP擴展字段的更多信息,請參見[HTTP擴展字段](http://developer.qiniu.com/docs/v6/api/reference/extended-headers.html)。
如果下載過程中遇到任何錯誤,我們建議開發者將這些詳細信息都寫入日志,在請求技術支持時提供這些錯誤信息以便快速排查。