【发布时间】:2011-02-22 06:28:10
【问题描述】:
我听说 HTTP POST 对它可以发送的数据大小没有规范限制。这是真的还是只是有一些非常高的限制?
【问题讨论】:
我听说 HTTP POST 对它可以发送的数据大小没有规范限制。这是真的还是只是有一些非常高的限制?
【问题讨论】:
令人惊讶的是,所有答案都在谈论 IIS,就好像那是唯一重要的 Web 服务器。甚至早在 2010 年问这个问题时,Apache 的数量就在 60% 和 70% of the market share 之间。总之,
min(serverMaximumSize, clientMaximumSize)。以下是一些更流行的 HTTP 服务器的 POST 正文大小:
EDIT (2019) 这个答案现在非常多余,但是another answer 提供了更多相关信息。
这取决于网络服务器和网络浏览器:
Internet explorer 所有版本 2GB-1
Mozilla Firefox 所有版本 2GB-1
IIS 1-5 2GB- 1
IIS 6 4GB-1
虽然 IIS 默认只支持 200KB,但元数据库需要修改以增加。
http://www.motobit.com/help/scptutl/pa98.htm
POST方法本身对数据大小没有任何限制。
【讨论】:
根据 HTTP 协议本身没有限制,但实现会有一个实际的上限。我使用 POST 向 Apache 发送了超过 4 GB 的数据,但当时某些服务器确实有 4 GB 的限制。
【讨论】:
LimitRequestBody 指令设置上限。
POST 允许将任意长度的数据发送到服务器,但存在基于超时/带宽等的限制。
我认为基本上,假设发送大量数据不可以更安全。
【讨论】:
根据这篇(现已删除)文章,不同的 IIS Web 服务器可以处理“标头”中不同数量的数据; http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;
请注意,没有限制 您可以传递的 FORM 元素的数量 通过 POST,但仅限于聚合 所有名称/值对的大小。尽管 GET 限制为低至 1024 字符,POST 数据限制为 2 IIS 4.0 上为 MB,IIS 5.0 上为 128 KB。 每个名称/值限制为 1024 SGML 规定的字符 规格。当然这不适用于 使用上传的文件 enctype='multipart/form-data' ...我 上传文件没有问题 使用 IIS 在 90 - 100 MB 范围内 5.0,除了必须增加 server.scriptTimeout 值以及 我的耐心!
【讨论】:
在我正在开发的一个应用程序中,我遇到了大约 2KB 的 POST 限制。原来是我不小心将参数编码到 URL 中,而不是在正文中传递它们。因此,如果您在那里遇到问题,那么您可以发送编码到 URL 中的 POST 数据的大小肯定会有一个非常小的限制。
【讨论】:
HTTP 可能没有上限,但网络服务器可能有上限。在 ASP.NET 中,默认接受限制为 4 MB,但您(开发人员/网站管理员)可以将其更改为更高或更低。
【讨论】: