斷點續傳原理

斷點續傳是大型文件數據傳輸的核心。本文將以多線程技術和Socket技術爲依託,介紹大型文件斷點續傳的實現方法。
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客  基本實現思想
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客  多線程斷點續傳實現的基本思想就是在發送端(也稱客戶端)將要傳輸的文件分割爲大小相當的多塊,用多個線程,將這些塊同時向目標服務器端發送;在服務器端的服務程序監聽數據傳輸請求,每當接到新的請求,則創建一個新的線程,與客戶端的發送線程對應,接收數據,記錄數據傳輸進程
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客  圖1是點對點文件斷點續傳第N塊傳輸過程示意圖。在傳輸發起端(客戶端),將大型文件事先分割爲大小相當的N塊,同時創建N個傳輸線程,連接目標端服務器。當服務器端接收到每一個連接請求後,告知客戶端可以傳輸文件。當客戶端接收到可以傳輸文件的消息時,首先向服務器發送數據傳輸信息塊(包括第幾塊、在塊中的起始位置)請求,當服務器端接收到該請求後,向客戶端發送數據傳輸信息,客戶端然後傳輸數據傳輸信息塊指定的數據給服務器端,服務器端更新數據傳輸信息塊。
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客(一)斷點續傳的原理 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客其實斷點續傳的原理很簡單,就是在Http的請求上和一般的下載有所不同而已。 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客打個比方,瀏覽器請求服務器上的一個文時,所發出的請求如下: 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客假設服務器域名爲wwww.sjtu.edu.cn,文件名爲down.zip。 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客GET /down.zip HTTP/1.1 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客excel, application/msword, application/vnd.ms-powerpoint, */* 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Accept-Language: zh-cn 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Accept-Encoding: gzip, deflate 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Connection: Keep-Alive 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客服務器收到請求後,按要求尋找請求的文件,提取文件的信息,然後返回給瀏覽器,返回信息如下: 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客200 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Content-Length=106786028 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Accept-Ranges=bytes 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Date=Mon, 30 Apr 2001 12:56:11 GMT 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客ETag=W/"02ca57e173c11:95b" 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Content-Type=application/octet-stream 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Server=Microsoft-IIS/5.0 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客  
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客所謂斷點續傳,也就是要從文件已經下載的地方開始繼續下載。所以在客戶端瀏覽器傳給 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Web服務器的時候要多加一條信息--從哪裏開始。 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客下面是用自己編的一個"瀏覽器"來傳遞請求信息給Web服務器,要求從2000070字節開始。 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客GET /down.zip HTTP/1.0 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客User-Agent: NetFox 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客RANGE: bytes=2000070- 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客仔細看一下就會發現多了一行RANGE: bytes=2000070- 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客這一行的意思就是告訴服務器down.zip這個文件從2000070字節開始傳,前面的字節不用傳了。 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客服務器收到這個請求以後,返回的信息如下: 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客206 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Content-Length=106786028 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Content-Range=bytes 2000070-106786027/106786028 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Date=Mon, 30 Apr 2001 12:55:20 GMT 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客ETag=W/"02ca57e173c11:95b" 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Content-Type=application/octet-stream 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Server=Microsoft-IIS/5.0 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客和前面服務器返回的信息比較一下,就會發現增加了一行: 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客Content-Range=bytes 2000070-106786027/106786028 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客返回的代碼也改爲206了,而不再是200了。 
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客
斷點續傳原理 - 大灰狼 - 大灰狼 的博客知道了以上原理,就可以進行斷點續傳的編程了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章