我听说HTTP POST对数据大小没有规定限制。是真的还是只有一些非常高的限制?
答案 0 :(得分:42)
编辑(2019年)这个答案现在非常多余,但another answer有更多相关信息。
它取决于Web服务器和Web浏览器:
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方法本身对数据大小没有任何限制。
答案 1 :(得分:22)
根据HTTP协议本身没有限制,但实现将具有实际的上限。我使用POST向Apache发送了超过4 GB的数据,但有些服务器当时确实有4 GB的限制。
答案 2 :(得分:5)
POST允许将任意长度的数据发送到服务器,但基于超时/带宽等存在限制。
我认为基本上,假设发送大量数据 可以更安全。
答案 3 :(得分:5)
令人惊奇的是,所有答案都涉及IIS,好像那是唯一重要的Web服务器。甚至在2010年,当有人问这个问题时,Apache的使用率在60%和70% of the market share之间。反正
min(serverMaximumSize, clientMaximumSize)
。以下是一些更流行的HTTP服务器的POST正文大小:
答案 4 :(得分:2)
根据此(现已删除)的文章,不同的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值以外 耐心等待!
答案 5 :(得分:0)
在我正在开发的应用程序中,我遇到了似乎是大约2KB的POST限制。事实证明,我不小心将参数编码到URL中,而不是将它们传递到正文中。因此,如果您遇到问题,那么您可以将编码的POST数据大小限制在URL中。
答案 6 :(得分:-1)
HTTP可能没有上限,但是Web服务器可能有一个上限。在ASP.NET中,默认接受限制为4 MB,但您(开发人员/网站管理员)可以将其更改为更高或更低。