HTTP協議中的Range和Content-Range


 琢磨HTTP協議的每一個細節。


HTTP協議博大精深,每一個細節都應細細體會。


否則,在協議還原的過程中,你會遇到各種問題。


今天,本文中將對HTTP協議的Range和Content-Range進行分析。


Range和Content-Range是 HTTP/1.1中新增的HTTP頭字段。它用於從服務器中獲取一個大文件的某一部分內容,這極大地提高了HTTP的運行效率,很適合下載軟件進行多線程下載和斷點續傳。


一個典型使用Range字段的HTTP會話如下:

640?wx_fmt=jpeg


在請求頭部,使用“Range”字段描述了需要請求的內容起止:

Range: bytes=0-204799


可以看出,對數據內容,它是以字節來計數的,並且其字節的序號是以0開始的。


在響應頭部,使用“Content-Range”字段描述了返回的數據內容的起止位置以及整個需要請求的內容的長度:

Content-Range: bytes 0-169704/169705


在字段中,以“/”為分隔,前半部分描述的是當前傳輸的內容的起止,后半部分為整個需要請求的內容的長度。本文的例子中,整個需要請求內容長度為169705字節,因此返回的數據要比請求頭部描述的數據要少。


對含“Range”字段的HTTP數據,其響應碼並非通常的200等,而是206和416。206的含義是“Partial Content”,即服務器發回的是請求的那一部分內容。416的含義是“Range Not Satisfiable”,表明客戶端請求的數據范圍不合法。


在協議還原中,對HTTP協議本身而言,處理Range並不復雜。復雜的是如果需要還原的是一個文件,會涉及到多個HTTP會話間的同步和協作,這需要大家謹慎處理。


對HTTP的還原,如果有一些心得體會,請聯系我分享哦。

640?wx_fmt=jpeg

長按進行關注。






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM