HTTP的斷點續傳原理

2021-10-07 10:03:22 字數 1500 閱讀 1897

accept-ranges:由server傳送給client時需要的關鍵字。表明是否支援斷點續傳。

accept-ranges:none(表示不支援斷點續傳)

accept-ranges:bytes(表示支援以bytes為單位進行傳輸)

content-ranges:由server傳送給client時需要的關鍵字。表示本次傳輸資料的資料範圍。

content-ranges:bytes 0-10/1024(表示本次傳輸0-10位元組的資料,這個檔案總大小是1024)

range:由client傳送給server時需要的關鍵字。表示client本次向server請求的該檔案的資料範圍。

range:bytes=4000-(表示請求4000位元組到檔案末尾的資料)

range:bytes=-4000(表示請求最後4000位元組的資料)

range:bytes=0-4000(表示請求前4000位元組的資料)

range:bytes=4000-5000(表示請求4000位元組-5000位元組的資料)

etag:「55dc2dba14dd5b」(唯一標識該檔案的)

last-modified:由server和client互相傳送的關鍵字。表示檔案的最後一次修改時間,用法和etag差不多,都是為了判斷是否需要斷點續傳。

last-modified: tue, 25 aug 2015 08:56:26 gmt(該檔案的最後一次修改時間)

if-range:由client傳送給sever的關鍵字。內容就是上一次server傳送給client的etag內容(也就是上次傳輸的檔案的唯一標識)。在斷點續傳的時候,client傳送給server,讓server去比較是否需要續傳。

if-range:「627-4d648041f6b80」

if-range:fri, 22 feb 2013 03:45:02 gmt

第一次請求:

1、客戶端發起 http get 請求乙個檔案。

2、伺服器處理請求,返回檔案內容以及相應的 header,其中包括 etag(例如:6274d648041f6b80,這個etag也就是表示現在傳送的這個檔案的md5值)(假設伺服器支援 etag 生成並已開啟了 etag)狀態碼為 200,還有accept-ranges:***,告訴client是否支援斷點續傳。

第二次請求(斷點續傳):注意

如果伺服器不支援斷點續傳,則客戶端發的這些關鍵字都會被忽略。

if-range和range要一起使用。

HTTP斷點續傳原理

作為一名程式媛我也想快點進步,希望慢慢積累吧。給自己加加油。1.斷點續傳的必要性 2.了解斷點續傳之前,了解下http協議。http hyper text transfer protocol 協議是用於從全球資訊網 www 伺服器傳輸超文字到本地瀏覽器的傳送協議。它是基於tcp ip協議來傳遞資料的...

http斷點續傳原理

這周完成了乙個斷點續傳的功能。我們的遊戲裡載入地圖的邏輯簡化而言是這樣 1.首先用本地的md5檔案校驗地 件 很多檔案 是否完整。中間有很多步驟,任何步驟失敗都認為地圖不完整 2.如果完整,直接載入地圖。3.如果不完整,需要通過乙個http協議請求後台伺服器傳回完整的地圖。要解決這個問題,要了解以下...

HTTP 斷點續傳

客戶端請求域 range 格式如下例子 第乙個500位元組 位元組偏移量0 499,包括0和499 range bytes 0 499 第二個500位元組 位元組偏移量500 999,包括500和999 range bytes 500 999 最後500位元組 位元組偏移量9500 9999,包括9...