對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2009/5/21 0:38:49
首先我們先認識一下,在 HTTP 的回應狀態碼裡面,有一個 206 Partial Content。
她的意思如下:
因為頻寬限制,Server 將較大的網頁或檔案分次傳送,由於僅能傳輸部分內容,因此以此訊息通知 Client 資料尚未傳完
簡單的說,會看到這個 Code 即表示『伺服器僅完成了部分用戶的GET請求』
換言之,我們就是碰上了所謂的『續傳軟體』啦!
而 flashget 這一類所謂「多線程下載」或叫「斷點續傳」軟體,就是每次請求部分資料而已!
但不知道大家是否會有如下幾個疑問:
1.第一個線程請求的一定是所有的資料(啟動時一定是單點開始),從伺服器回傳的數據中 Header content-length 顯示的是請求的文件大小,但是消息體實際沒有包含所有的數據。
這和協議不一致,http1.1中規定如果有content-length字段,這個字段的值就必須是消息體的字符數。
2.各個線程請求的數據都是從某個位置開始直到文件結束的數據,這樣各個線程得到的數據就有重疊部分。這些數據是怎麼合併的?
此時我們可以參閱後面兩篇資料,透過程式來說明!
她的意思如下:
因為頻寬限制,Server 將較大的網頁或檔案分次傳送,由於僅能傳輸部分內容,因此以此訊息通知 Client 資料尚未傳完
簡單的說,會看到這個 Code 即表示『伺服器僅完成了部分用戶的GET請求』
換言之,我們就是碰上了所謂的『續傳軟體』啦!
而 flashget 這一類所謂「多線程下載」或叫「斷點續傳」軟體,就是每次請求部分資料而已!
但不知道大家是否會有如下幾個疑問:
1.第一個線程請求的一定是所有的資料(啟動時一定是單點開始),從伺服器回傳的數據中 Header content-length 顯示的是請求的文件大小,但是消息體實際沒有包含所有的數據。
這和協議不一致,http1.1中規定如果有content-length字段,這個字段的值就必須是消息體的字符數。
2.各個線程請求的數據都是從某個位置開始直到文件結束的數據,這樣各個線程得到的數據就有重疊部分。這些數據是怎麼合併的?
此時我們可以參閱後面兩篇資料,透過程式來說明!