使用Visual C#實現斷點續傳

在瞭解HTTP斷點續傳的原理之前,讓我們先來了解一下HTTP協議,HTTP協議是一種基於tcp的簡單協議,分爲請求和回覆兩種。請求協議是由客戶機(瀏覽器)向服務器(WEB SERVER)提交請求時發送報文的協議。回覆協議是由服務器(web server),向客戶機(瀏覽器)回覆報文時的協議。請求和回覆協議都由頭和體組成。頭和體之間以一行空行爲分隔。



  以下是一個請求報文與相應的回覆報文的例子:
GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Connection: Keep-Alive


HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 24 Jun 2003 05:39:40 GMT
Content-Type: image/jpeg
Accept-Ranges: bytes
Last-Modified: Thu, 23 May 2002 03:05:40 GMT
ETag: "bec48eb862c21:934"
Content-Length: 2827

….

  下面我們就來說說"斷點續傳",顧名思義,斷點續傳就是在上一次下載時斷開的位置開始繼續下載。
在HTTP協議中,可以在請求報文頭中加入Range段,來表示客戶機希望從何處繼續下載。

  比如說從第1024字節開始下載,請求報文如下:

GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Range:bytes=1024-
Connection: Keep-Alive
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章