HTTP POST可以无限吗?

时间:2010-05-21 08:57:17

标签: http forms post limit

我听说HTTP POST对数据大小没有规定限制。是真的还是只有一些非常高的限制?

7 个答案:

答案 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之间。反正

  • HTTP协议未指定限制。
  • POST方法比GET方法发送的数据要多得多,后者受到URL length的限制-大约2KB。
  • 最大POST request body大小是在HTTP服务器上配置的,通常范围为
    1MB到2GB
  • HTTP客户端(浏览器或其他用户代理)可以有其自身的限制。因此,最大POST正文请求大小为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,但您(开发人员/网站管理员)可以将其更改为更高或更低。