使用 HTTPPOST 方法可以发送的最大数据大小的规范是什么?
根据 HTTP 协议本身没有限制,但是实现将有一个实际的上限。我已经使用 POST 向 Apache 发送了超过4GB 的数据,但是有些服务器当时的限制是4GB。
POST 允许向服务器发送任意长度的数据,但是有基于超时/带宽等的限制。
我认为基本上,假设 没有可以发送大量数据是比较安全的。
编辑(2019) 强 > 这个答案现在是相当多余的,但有 另一个答案更相关的信息。
这取决于网络服务器和网络浏览器:
Internet Explorer 所有版本2GB-1 Mozilla Firefox 所有版本2GB-1 IIS 1-52GB-1 IIS 64GB-1
尽管 IIS 在默认情况下只支持200KB,但是元数据库需要进行修改以增加这个值。
Http://www.motobit.com/help/scptutl/pa98.htm
POST 方法本身对数据大小没有任何限制。
不同的 IIS 网络服务器可以处理不同数量的数据在’头’,根据这个(现已删除)的文章;
注意,对 可以传递的 FORM 元素的数量 通过 POST,但只在聚合上 所有名称/值对的大小 GET 最低限度为1024 字符,POST 数据限制为2 在 IIS4.0上使用 MB,在 IIS5.0上使用128 KB。 每个名称/值限制为1024 字符,由 SGML 强加 当然这不适用于 上载的文件 Enctype = ‘ multipart/form-data’.. 上传文件没有问题 在90-100MB 的范围内使用 IIS 除了必须增加 server.scriptTimeout 值以及 我的耐心!
HTTP 可能没有上限,但是 web 服务器可能有。在 ASP.NET 中,默认的接受限制是4MB,但是你(开发者/网站管理员)可以将其更改为更高或更低。
在我开发的一个应用程序中,我遇到了大约2KB 的 POST 限制。结果是,我不小心将参数编码到 URL 中,而没有在主体中传递它们。因此,如果您遇到一个问题,那么您可以发送编码到 URL 中的 POST 数据的大小肯定有一个非常小的限制。
所有的答案都在谈论 IIS,好像这是唯一重要的网络服务器。甚至在2010年问这个问题的时候,Apache 还是在 百分之六十和 70% 的市场份额之间。总之,
min(serverMaximumSize, clientMaximumSize)
下面是一些比较流行的 HTTP 服务器的 POST 主体大小: