
從技術上講,託管(在伺服器上)的方式有什麼區別
- 可以在下載時暫停並再次恢復的文件,以及
- 需要一次性下載的文件?
答案1
伺服器需要支援提供部分內容和處理部分請求的能力。大多數現代網頁伺服器都能夠處理它,除非您使用的是內部建構的東西。
您可以透過閱讀本文獲得更多信息阿帕契文件和相關 RFC。來自連結的文件 - 回應範例。
HTTP/1.1 206 Partial Content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 500-999/8000
...the first range...
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 7000-7999/8000
...the second range
--THIS_STRING_SEPARATES--
答案2
常見的一個問題是缺少content-size
orcontent-range
標頭。也許作者忘記在下載腳本中設定一個?
答案3
如果 HTTP 伺服器支援範圍檢索請求(如第 14.35 節中定義),則可以還原下載RFC 2616,維基百科稱之為“位元組服務「出於某種奇怪的原因。
- 伺服器發送對或請求的
Accept-Ranges: bytes
回應以表明它支援位元組服務。HEAD
GET
- 客戶端發送的
GET
請求包括Range: bytes=aaa-bbb
,其中起始偏移量是aaa
檔案開始後的位元組數,範圍長度是bbb - aaa + 1
位元組數。 - 伺服器發送狀態 206(部分內容)回應,包括
Content-range: bytes aaa-bbb/cccc
,其中aaa-bbb
與之前一樣,並且cccc
是檔案的長度(以位元組為單位),或者*
如果伺服器無法確定它,後跟包含所請求的位元組範圍的回應正文。如果範圍超出範圍,伺服器將發送狀態 416(請求的範圍無法滿足)回應。
一些視訊播放器使用範圍請求來支援視訊搜尋。 Ogg 媒體容器使用插值二分搜索支援這個用例。
流行的 Web 伺服器軟體可以配置為提供靜態檔案的範圍,但驗證下載的伺服器端腳本可能需要也可能不需要處理範圍本身。 (檢查您的腳本語言手冊。)某些向公眾開放的下載伺服器運營商會故意阻止範圍請求,因為一些下載管理器已使用對內容範圍的支援向伺服器發出多個請求,從而佔用了可用於提供下載的資源給其他使用者。