http範圍請求

2021-09-07 19:50:39 字數 2022 閱讀 1820

http/1.1之後才支援,需要雙端都支援 

服務端頭資訊中有 accept-ranges:bytes 表明伺服器支援範圍請求

範圍請求:

http code 返回  206 partial content

客戶端請求頭:content-range: bytes 0-1408774/1408775

start-end/content-length

end 最大為 content-length - 1, start 從0開始, 包括開始和結束值,超過範圍有可能返回 http 416 range not satisfiable  ,有的伺服器會自動修正

range 還有幾種不同的方式來限定範圍,可以根據需要靈活定製:

1. 500-1000

3. -500:無開始區間,只意思是需要最後 500

bytes 的內容實體。

4. 100-300,1000-3000:指定多個範圍,這種方式使用的場景很少,了解一下就好了

範圍請求示例:

範圍請求需要在head中增加 range: bytes=0-10

curl -i -r 0-100 ""或

gmtcontent-range: bytes 0-100/1408775# 本次返回內容的 開始-結束/總長度

content-length: 101 #本次返回的總長度

content-type: text/html

content-language: en

資源變化

etag:當前檔案的乙個驗證令牌指紋,用於標識檔案的唯一性。

last-modified:標記當前檔案最後被修改的時間。

if-range: ***

if-range 必須與 range 配套使用。如果沒有 range,那麼 if-range 就會被忽略。

如果伺服器不支援 if-range,那麼 range 也會被忽略。

etag(entity tags)主要為了解決 last-modified 無法解決的一些問題。

1、某些檔案週期性改變,但內容沒變,只是時間變了

2、某些檔案改變非常頻繁(1s變化n次),後者只可以精確到秒

3、某些伺服器不能精確得到檔案的修改時間

參考:

HTTP範圍請求

只有雙端 客戶端和伺服器端 都支援http 1.1才能使用範圍請求。1.範圍請求的請求報文 在http 1.1的請求報文中,有乙個首部字段range來指定請求資源的byte範圍。範圍請求報文示例 range bytes 5001 10000 byte範圍指定形式如下 2.範圍請求的響應報文 針對範圍...

Http 資料壓縮 分塊傳輸 範圍請求

1.首先來看資料壓縮 http傳輸資料時,會對資料進行壓縮,因為有些資料大的有幾 g 幾十 g 都有可能。通常瀏覽器傳送請求時會帶著 accept econding 頭欄位,面是瀏覽器支援的壓縮格式列表,例如 gzip deflate br 等,這樣伺服器就可以從中選擇一種壓縮演算法,放進 cont...

HTTP請求 HTTP方法

http 1.1中可使用的方法 get 獲取資源 獲取伺服器的某個資源 get方法用來請求訪問已經被uri識別的資源。制定的資源經伺服器端解析後返回響應內容。也就是說,如果請求的資源是文字,那就保持原樣返回 如果是像cgi common gateway inte ce,通用閘道器介面 那樣的程式,就...