2012-10-24 50 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

让我知道是否有人知道这个例外。 –