HTTP数据包的最大大小是多少?我对HTTP GET请求的响应大小感兴趣(不是this!这个问题与请求大小有关)。有尺寸吗?如果我下载1GiB文件,那最终只是1个HTTP GET请求吗? (直觉上,我不认为会发生这种情况 - 此外,部分下载/多线程下载程序也不起作用。)
我知道有一个IP数据包的最大长度,并且比这更长的TCP数据包在多个IP数据包中被分段。 HTTP也会发生这样的事情吗?我正在寻找这个问题的答案的原因是找出收取1c / 10K获取请求的AWS S3计费方案。那么为1GiB开始提供多少GET请求。
答案 0 :(得分:0)
如果您使用GET请求下载5GiB文件。 S3的计费系统 将其视为1 GET请求和5GiB数据传输。仅供你,如果你 停止从2GiB下载5GiB的文件,然后它们将只计数 2GiB数据传输。
除非您分开通话,否则GET请求通常不会分段 进入几个连续的GET范围呼叫。
因此,如果您使用范围标题为每个请求发出5个单独的GET请求 1GiB数据块,它们将其视为5 GET请求但仍然相同 5GiB(1GiB x 5次)数据传输。技术上只有5GiB以上 由于额外的HTTP协议标头。
如果这是正确的,HTTP GET响应没有数据包碎片(虽然它们遇到了几个TCP数据包,丢失的TCP数据包由TCP处理,并且不会违反另一个GET请求恢复)