如何驗證代理鏈路中的 HTTP Range 與斷點續傳完整性

彩色網際網路檔案分段通過代理中繼並在終點精確重組

HTTP Range 能提高大型檔案下載、媒體驗證及中斷後蒐集效率,也會帶來正確性風險。代理可能忽略請求範圍、快取錯誤分段、傳回不一致驗證器,或在各段間更換出口。下載器最後可能得到長度正確但位元組錯誤的檔案。

本指南建立代理採購可用的 Range 與續傳測試,只使用自有或獲准檔案和端點。

明確預期協定

單一位元組範圍通常應傳回 206 Partial Content、有效 Content-Range、正確分段長度和穩定表示驗證器。來源端若忽略 Range,可能傳回完整內容及 200。客戶端必須區分,不能把完整回應附加至部分檔案。

記錄測試編號、路由別名、請求範圍、狀態、Content-Range、長度、ETag 雜湊、Last-Modified、分段摘要、完整檔案摘要、代理工作階段雜湊及失敗階段。不得記錄代理密碼、授權標頭、Cookie 或原始權杖。

建立確定性夾具

建立已知位元組及強摘要的自有二進位物件,長度足以跨多個分段,並在每個邊界放置不同模式。提供穩定 ETagLast-ModifiedAccept-Ranges 和總長度。

再建立大小相近但邊界位元組不同的第二版本,用來驗證物件更新時續傳能否安全停止。

建立直連基線

分別請求第一個位元組、中間區間、最後位元組、開放結尾範圍、後綴範圍、無法滿足範圍,以及能重組成較大區間的相鄰範圍。逐一驗證狀態、邊界、長度與分段摘要。

無法滿足的請求應指出目前總長度,不可傳回看似合理的部分正文。

執行代理路由矩陣

維度
路徑直連、閘道 A、閘道 B
位址族已購買的 IPv4、IPv6
工作階段固定、輪換
連線新建、重複使用
編碼identity;明確支援時再測壓縮
快取唯一未命中、受控命中

固定物件版本、範圍、客戶端及逾時,每段在每條路由重複。輪換代理可更換出口,但所有分段仍須屬於相同物件表示。

數學驗證 Content-Range

bytes start-end/total,要求起點不大於終點,傳回長度等於終點減起點加一,終點小於總長度,正文符合自有夾具對應位元組,而且同一次重組的所有分段共享同一強驗證器。

拒絕位元組不同的重疊段、意外空隙及下載途中改變的總長度。不可只以 Content-Length 判斷正確。

使用驗證器保護續傳

續傳時帶上合適驗證器,避免把新版物件位元組附加到舊檔案。若驗證器不再相符,從乾淨暫存檔重新開始。完整摘要通過前,不覆寫已驗證目標。

弱驗證器與強驗證器能力不同。無法證明兩個分段代表相同位元組時,應重新開始而不是猜測。

分開壓縮與位元組範圍

Range 針對選定表示。自動壓縮會改變偏移、長度及驗證器。先以 identity 建立位元組正確性;只有來源端協定明確時才測壓縮,並記錄偏移屬於編碼或解碼位元組。

組合前先執行gzip 與 Brotli 完整性測試

測試失敗與重試

在已知位元組數後中斷連線並續傳。分別測試標頭前逾時、分段中逾時,以及最後一段完成但提交前中斷。記錄重試是否建立新通道或改變代理出口。

部分 GET 通常可重試,但必須寫入有偏移的暫存檔,不能盲目附加。結合代理重試風暴預防指南限制次數及總耗時。

偵測快取與路由污染

在獲准夾具使用唯一挑戰,分開快取未命中與受控命中。跨閘道比較驗證器及分段摘要,快取不得在版本 B 驗證器下傳回版本 A 分段。

不得繞過第三方快取規則,只在自有或明確許可環境測試。

測量有效效能

記錄首位元組時間、分段吞吐、續傳成功率、重複下載位元組、完整檔案成功率和每個已驗證物件成本。原始吞吐高的路由若經常因錯誤分段重下載,仍然昂貴。

結合代理頻寬成本估算每次成功請求成本評估。

上線檢查清單

  • 直連首段、中段、末段、後綴及無效範圍通過;
  • 每個 206 的數學邊界有效;
  • 分段摘要符合自有夾具;
  • 一次重組不混用驗證器;
  • 物件改變會觸發乾淨重啟;
  • identity 通過後才測壓縮;
  • 中斷傳輸續寫暫存檔;
  • 完整摘要通過後才提交;
  • IPv4、IPv6、閘道與工作階段分開統計;
  • 日誌不含憑據或私有負載。

常見問題

Range 請求傳回 200 一定是錯誤嗎?

不一定,伺服器可能忽略 Range 並傳回完整物件。客戶端應替換或重啟,不可附加。

分段可使用不同代理出口嗎?

若來源端允許且驗證器證明表示相同,可以。但存取狀態或地區內容會改變時,固定工作階段較安全。

總長度相同就足夠嗎?

不足。錯誤或重複分段仍可維持總長度,必須驗證每段和最終完整摘要。

應立即平行下載分段嗎?

先證明循序下載正確,路由、來源端及快取穩定後再加入受限平行。

合規說明

只從自有或獲准系統與物件請求範圍。遵守速率限制、授權、快取規則及隱私要求,不得利用分段下載規避存取控制或流量限制。