25

补充:我正在研究一个我们将在我的工作中开发的新系统。它包括对用户进行身份验证,显示他们想要下载的文件并下载它们。此外,如果文件不可用,则用户无法下载它们,但服务器会获取所请求文件的副本,并在用户可以获取文件时通过邮件通知用户。目前,我们预计文件的大小通常为 2 到 50 GB。

我只是想检查是否可以编写一个 Web 应用程序来解决这个问题,或者我们是否需要制作一个客户端-服务器解决方案。

4

7 回答 7

29

没有最大值。您遇到的任何最大值都是特定于应用程序或特定于站点的。

我已经使用 HTTP 和 FTP 从 Microsoft 下载了 DVD iso,没有问题(~4gb)。

我还通过这两种方法上传了大文件。

你能详细说明你想做什么吗?

于 2009-01-20T13:27:52.670 回答
21

正如已经回答的那样,该协议没有限制,但大多数 HTTP服务器都有开箱即用的默认上传限制:

IIS6在metabase.xml中使用MaxRequestEntityAllowed(默认为 4GB)和AspMaxRequestEntityAllowed(默认为 200000 字节)。

IIS7 使用maxRequestEntityAllowed: **appcmd set config /section:asp /maxRequestEntityAllowed:***int* (默认为 200000 字节)

Apache 使用LimitRequestBody(默认为 2GB)

于 2009-01-20T15:15:32.187 回答
2

您所说的协议中没有这种设计限制。仅在具体服务器上超时

于 2009-01-20T13:38:47.127 回答
1

HTTP 中的上传通常受到限制,因为服务器必须等到(通常很慢)上传完成才能响应请求。

于 2009-01-20T13:35:19.723 回答
1

还有一个重要的问题——你要上传还是下载?

我可以说下载的限制比上传要少得多。我不知道为什么。也许是因为 HTTP 和 FTP 的主要目的是发送数据,而不是接收。

这就是为什么 HTTP/FTP 服务器可以更频繁地中断上传会话而不是下载会话的原因。

于 2009-01-20T13:53:41.573 回答
1

由于传输的大小可能会在开头附近说明,我敢打赌您的文件大小限制与无符号整数的限制相同。从 HTTP 和 FTP 变得流行和有用的时间段来看,我会说这是一个 32 位无符号整数,所以2^32 Bytes 或 4.0 GiB

于 2012-09-07T09:38:57.180 回答
0

对于 TCP 协议,您有从 0 到 2^32-1 的序列号。假设最坏的情况是您将每个字节的序列增加 1。现在最大文件大小为 4GB。你有一个 1GBps 的连接。所有序列在 4 秒内完成,这是环绕时间。如果 TTL 大于环绕时间,则我们无法重用序列,因此最大文件大小为 4GB。

但是魔术在 TCP 选项中,在选项中我们可以添加时间戳。现在问题解决了,即使我们得到相同的源和相同的目标相同的序列号,但我们有不同的时间戳来识别。

于 2018-05-09T18:22:53.623 回答