symbian實現斷點續傳

2021-05-23 00:07:07 字數 1538 閱讀 4123

斷點續傳的原理

假設伺服器網域名稱為wwww.sjtu.edu.cn,檔名為down.zip。

仔細看一下就會發現多了一行range: bytes=2000070-;這一行的意思就是告訴伺服器down.zip這個檔案從2000070位元組開始傳,前面的位元組不用傳了。

伺服器收到這個請求以後,返回的資訊如下:

content-length=106786028

content-range=bytes 2000070-106786027/106786028

date=mon, 30 apr 2001 12:55:20 gmt

etag=w/"02ca57e173c11:95b"

server=microsoft-iis/5.0

last-modified=mon, 30 apr 2001 12:55:20 gmt

和前面伺服器返回的資訊比較一下,就會發現增加了一行:

content-range=bytes 2000070-106786027/106786028

返回的**也改為206了,而不再是200了。

知道了以上原理,就可以進行斷點續傳的程式設計了。

http標頭檔案 status code

表示頭500個位元組:

range: bytes=0-499

表示第二個500位元組:

range: bytes=500-999

表示最後500個位元組:

range: bytes=-500

表示500位元組以後的範圍:

range: bytes=500-

第乙個和最後乙個位元組:

range: bytes=0-0,-1

同時指定幾個範圍:

range: bytes=500-600,601-999

所以,執行緒3傳送的請求報文必須有這一行:

range: bytes=200-299

伺服器接收到執行緒3的請求報文,發現這是乙個帶有range頭的get請求,如果一切正常,伺服器的響應報文會有下面這行:

表示處理請求成功,響應報文還有這一行

content-range: bytes 200-299/403

斜槓後面的403表示檔案的大小,通常content-range的用法為:

. the first 500 bytes:

content-range: b

ytes 0-499/1234

. the second 500 bytes:

content-range: bytes 500-999/1234

. all except for the first 500 bytes:

content-range: bytes 500-1233/1234

. the last 500 bytes:

content-range: bytes 734-1233/1234

實現HTTP斷點續傳

在http協議中,獲取資源可以使用get方法,但在使用get方法指定乙個資源後,會獲取到該資源的所有位元組。在http協議中,提供range屬性,可以指定獲取資源某一段資料。如使用telnet連線www.cz88.net 的80埠 會獲取如下資料 ht失去了跟主機的連線。在獲取的報文中,可以看到co...

ASIHTTPRequest實現斷點續傳

asihttprequest可以實現斷點續傳。網上有一些介紹類似使用 request setallowresumeforfiledownloads yes 不過,通過asihttprequest的非同步請求以及delegate還是可以實現斷點續傳的。本文還是以grails編寫斷點續傳伺服器端為例。非...

ios實現斷點續傳

asihttprequest可以實現斷點續傳。網上有一些介紹類似使用 request setallowresumeforfiledownloads yes 不過,通過asihttprequest的非同步請求以及delegate還是可以實現斷點續傳的。本文還是以grails編寫斷點續傳伺服器端為例。非...