2010-07-07 140 views

回答

1

結帳此artcle。它解釋了你在找什麼。

來源:http://www.httprevealer.com/usage_accelerator.htm

當涉及到下載文件, 的情況基本相同。 假設您要下載大小爲100 MB(兆字節)的文件 。如果 使用常規瀏覽器下載 該文件,如果服務器 提供每個連接每秒1MB的最大下載帶寬 ,則需要100秒才能下載文件 。 但是,如果你能以某種方式將 分解成兩半,並同時下載 它們,你可以將 的下載時間減少到50秒。這是一個 速度提高100%!通過執行 數學計算,您知道將文件拆分爲更多的片段 ,您將保存的時間更多。

+0

這是唯一的方法? – Trum 2010-07-07 12:15:24

+0

@trum - 沒有聽說過任何其他技術。 – Krunal 2010-07-07 12:28:32

0

如果服務器每個連接提供1MB,這是一種罕見的情況。如果服務器沒有啓用此類選項,則不會更快地下載文件。通常服務器帶寬也比你的大,所以你不會注意到這個變化。

1

由於Krunal指出,將下載拆分爲多個部分並將其並行下載的概念是最常見的解決方案。它充滿了一些問題

  • 服務器必須接受和處理內容範圍。否則,客戶端無法單獨獲取每個部分
  • HTTP規範對連接數量有一些限制,服務器可能會強制執行這些或可能限制它的不同數字。

以提高下載性能

  • 壓縮(GZIP)其他方式可以在客戶端和服務器的壓縮和發送的訂單內容上啓用。這對於二進制文件來說很小,但對於HTML來說,這可以幫助很多。
  • 數據包細粒控制。通過網絡速度和數據包的網絡屬性類型可以調整(TTL,大小等),這些可能會有所改進。
  • 如果確實需要下載,HTTP支持eTags和Last Modified標頭值。客戶端可以通過將HTTP方法設置爲HEAD來執行請求(這可能是< 1K數據往返),如果eTag/lastmodified已更改,則對實際數據執行HTTP GET請求。
  • 內容緩存。從較近的緩存服務器獲取它比實際的服務器更快。 CDN就是一個例子。另一種方法是使用P2P進行下載,從多個「服務器」獲取多個部分,這些服務器可能比實際服務器更接近。
  • DNS緩存,如果您從單個主機名提取大量文件,您可以緩存一次IP並使用它。