http斷點續傳原理:http頭 Range、Content-Range

weixin_30924079發表於2020-04-04

所謂斷點續傳,也就是要從檔案已經下載的地方開始繼續下載。在以前版本的 HTTP 協議是不支援斷點的,HTTP/1.1 開始就支援了。一般斷點下載時才用到 Range 和 Content-Range 實體頭。

Range 

用於請求頭中,指定第一個位元組的位置和最後一個位元組的位置,一般格式:

Range:(unit=first byte pos)-[last byte pos] 

Content-Range

用於響應頭,指定整個實體中的一部分的插入位置,他也指示了整個實體的長度。在伺服器向客戶返回一個部分響應,它必須描述響應覆蓋的範圍和整個實體長度。一般格式: 

Content-Range: bytes (unit first byte pos) - [last byte pos]/[entity legth] 

請求下載整個檔案: 

  1. GET /test.rar HTTP/1.1 
  2. Connection: close 
  3. Host: 116.1.219.219 
  4. Range: bytes=0-801 //一般請求下載整個檔案是bytes=0- 或不用這個頭

一般正常回應

  1. HTTP/1.1 200 OK 
  2. Content-Length: 801      
  3. Content-Type: application/octet-stream 
  4. Content-Range: bytes 0-800/801 //801:檔案總大小

轉載於:https://www.cnblogs.com/koal/p/5366143.html

相關文章