多線程斷點下載開發總結(一) - Http head Range標記

    好久以前用DotNet 作了一個多線程的斷點下載工具,今天忽然須要用到一些東西,居然一時想不起了,翻了翻源碼,這裏簡單總結一下。 服務器

    斷點下載 的基本協議採用的是Http 下載,那麼服務器如何響應斷點請求一個完整文件的部分數據呢,這裏須要用到 Http 協議頭 的 Range標記,客戶端發起請求的時候加上 Range標記 例如,Range:bytes=0-128 ,表示請求的文件的第1個到128個字節的數據,這時候服務器響應下載時會返回 Http 響應頭:Content-Range:  bytes  0-128/200 ,這裏200是文件的總大小。下面是一個請求響應頭的詳細說明。 多線程

請求下載整個文件: 
GET  /file.rar  HTTP/1.1 
Connection:  close 
Host:  116.1.219.219 
Range:  bytes=0-801 //通常請求下載整個文件是bytes=0- 或不用這個頭 
通常正常回應 
HTTP/1.1 200 OK 
Content-Length:  801      
Content-Type:  application/octet-stream  
Content-Range:  bytes  0-800/801 //801
app

注意:若是用戶的請求中含有range ,則服務器的相應代碼爲206。
206 - Partial Content 客戶發送了一個帶有Range頭的GET請求,服務器完成了它(HTTP 1.1新)。
工具

相關文章
相關標籤/搜索