2012-10-24 86 views
3

HTTP數據包的最大大小是多少?我對HTTP GET請求的響應大小感興趣(不是this!這個問題是關於請求大小的)。有沒有一個尺寸?如果我下載一個1GiB文件,那麼最終只有1個HTTP GET請求? (直覺上,我不認爲會發生這種情況 - 另外,部分下載/多線程下載程序不起作用)。最大HTTP數據包大小

我知道有一個IP數據包的最大長度,並且比這個長的TCP數據包在多個IP數據包中被分段。 HTTP也會出現這種情況嗎?我正在尋找這個問題的答案的原因是找出收取1c/10K獲取請求的AWS S3計費方案。因此,1GiB開始爲多少GET請求提供服務。

+1

您當然可以使用單個HTTP GET請求下載整個1Gb文件。如果服務器支持字節範圍請求,則HTTP客戶端可以輕鬆地創建1,073,741,824個GET請求並一次下載單個字節的文件。 – rdlowrey

回答

0

如果您在使用GET請求下載5GiB文件我上AWS S3 Forum答案由Seungyoung Kim

。 S3的計費系統 將其計爲1 GET請求和5GiB數據傳輸。僅供參考,如果你 停止在2GiB下載5GiB文件,那麼他們將只計算 2GiB的數據傳輸。

除非您將呼叫 拆分爲幾個連續的GET範圍調用,否則GET請求通常不會被分段。

因此,如果您發出使用範圍頭每個 1GiB數據塊5個個人GET請求,他們將指望它爲5 GET請求,但仍然相同 5GiB(1GiB×5倍)的數據傳輸。技術上來說,由於附加的HTTP協議頭部,超過5GiB 。

如果這是正確的,有HTTP GET響應無數據包碎片(儘管他們遇到多個TCP數據包和丟失的TCP數據包是通過TCP處理,不違禁另一個GET請求恢復)

+0

讓我知道是否有人知道這個例外。 –