range和content-range是 http/1.1中新增的http頭欄位,它用於從伺服器中獲取乙個大檔案的某一部分內容range欄位的作用是支援http協議的範圍請求,而範圍請求的用途多用於客戶端多執行緒請求服務端某一資源,實現高效併發。
在http請求頭中,range欄位代表請求內容的起始位置,以位元組計數,序號從零開始。
在http響應頭中,content-range:bytes 0-1538/1539代表返回資料內容的起始位置,及整個需要請求的內容的長度。
對含「range」欄位的http資料,其響應碼並非通常的200等,而是206和416。
206的含義是「partial content」,即伺服器發回的是請求的那一部分內容。
416的含義是「range not satisfiable」,表明客戶端請求的資料範圍不合法。
假如在響應中存在accept-ranges
首部(並且它的值不為 「none」),那麼表示該伺服器支援範圍請求。例如,你可以使用 curl 傳送乙個head
請求來進行檢測。
: bytes
表示界定範圍的單位是 bytes
-h" 選項可以在請求中追加乙個首部行
-i: include protocol response headers in the output 在輸出中包含協議響應頭
range頭部也支援一次請求文件的多個部分。請求範圍用乙個逗號分隔開。
curl -i -h "range: bytes=0-50, 100-150"
伺服器返回206 partial content狀態碼和content-type:multipart/byteranges; boundary=3d6b6a416f9b5頭部,content-type:multipart/byteranges表示這個響應有多個byterange。每一部分byterange都有他自己的centen-type頭部和content-range,並且使用boundary引數對body進行劃分。
HTTP學習筆記 HTTP報文
如果說http是網際網路的信使,那麼http報文就是運送的包裹。所有的http程式都是通過互相傳送報文來完成工作的。本文將介紹http報文的流動方式,報文的組成部分,請求和響應報文之間的區別等。http報文是在http應用程式之間傳送的資料塊,這些資料塊以文字形式存在,以描述了報文的內容及含義的元資...
HTTP學習筆記 HTTP協議
tcp ip協議按層次分為四層 應用層,傳輸層,網路層,資料鏈路層。該層決定了向使用者提 用服務時通訊的活動。如ftp和dns服務等。傳輸層有兩個性質不同的協議 tcp和udp協議。網路層的作用就是計算機之間通過網路裝置進行傳輸時,選擇一條傳輸路線。用來處理連線網路的硬體部分,硬體上的範疇均在該層的...
HTTP學習筆記
響應 響應行 協議,狀態碼,狀態文字 響應頭資訊 格式為key value 空行 主體資訊 可選 例 http 1.1 200 ok content type text html content length 5 hello 請求方法有哪些 有get post put delete head tra...