我在node.js中實現靜態文件服務以獲得學習和樂趣。比方說,我送了一個名爲party-time.txt
文件,該文件是:Range頭是壓縮或未壓縮字節的大小(以字節爲單位)?
100 bytes uncompressed
70 bytes gzipped
如果用戶請求Range: bytes=-10
,是在過去的10個壓縮字節(例如,91-100)這個請求,或者是它的最後10個壓縮字節(如61-70)?
我在node.js中實現靜態文件服務以獲得學習和樂趣。比方說,我送了一個名爲party-time.txt
文件,該文件是:Range頭是壓縮或未壓縮字節的大小(以字節爲單位)?
100 bytes uncompressed
70 bytes gzipped
如果用戶請求Range: bytes=-10
,是在過去的10個壓縮字節(例如,91-100)這個請求,或者是它的最後10個壓縮字節(如61-70)?
作爲HTTP協議的一部分,您應該指定內容編碼以及內容長度。內容長度應該與文件相對於您的編碼技術的長度相匹配。例如,如果將Content-Encoding設置爲gzip,則用戶請求的字節範圍應該是對壓縮長度的請求。
分組例如:
HTTP/1.1 200 OK
Date: mon, 28 Aug 2015 22:38:34 GMT
Server: <Your server>
Last-Modified: mon, 28 Aug 2015 22:38:34 GMT
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
使用條件或無條件的GET方法可以請求實體的一個或多個子範圍,而不是整個實體,使用範圍請求報頭的HTTP檢索請求,這適用於由於請求而返回的實體。
14.35.2 Range Retrieval Requests
因爲實際實體從請求返回是gzip的編碼數據,該數據用於導出內容長度,因此該範圍爲施加對抗。