web-dev-qa-db-ja.com

HTTP POSTは無制限ですか?

HTTP POSTは、送信可能なデータサイズに仕様の制限はありません。それは本当ですか、それとも本当に高い制限がありますか?

55
IAdapter

EDIT(2019)この回答はかなり冗長になりましたが、 別の回答 に関連情報があります。

むしろ、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メソッド自体には、データのサイズに制限はありません。

48
David Neale

すべての回答がIISについて語っているのは、驚くべきことです。質問が行われた2010年にも、Apacheは 60%市場シェアの70% の間でした。とにかく、

  • HTTPプロトコルは制限を指定しません。
  • POSTメソッドは、GETメソッドよりもはるかに多くのデータを送信できます。これは RLの長さ -約2KBによって制限されます。
  • 最大 POST要求本文 サイズはHTTPサーバーで構成され、通常は
    1MB〜2GB
  • HTTPクライアント(ブラウザまたは他のユーザーエージェント)には、独自の制限があります。したがって、最大POST body要求サイズはmin(serverMaximumSize, clientMaximumSize)です。

一般的なHTTPサーバーの一部のPOST本文サイズは次のとおりです。

25
Dan Dascalescu

HTTPプロトコル自体による制限はありませんが、実装には実際的な上限があります。 POST=を使用して4 GBを超えるデータをApacheに送信しましたが、一部のサーバーには4 GBの制限がありました。

23
Greg Hewgill

POSTでは、任意の長さのデータをサーバーに送信できますが、タイムアウト/帯域幅などに基づく制限があります。

基本的に、大量のデータを送信することはnotでよいと仮定する方が安全だと思います。

5
Russ Clarke

別のIIS Webサーバーは、この(現在削除されている)記事によると、「ヘッダー」の異なる量のデータを処理できます。 http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;

POSTを介して渡すことができるFORM要素の数に制限はありませんが、すべての名前/値のペアの合計サイズに制限があることに注意してください。 GETは1024文字までに制限されていますが、POSTデータはIIS 4.0で2 MB、およびIIS 5.0。各名前/値は、SGML仕様で定められているように1024文字に制限されています。もちろん、これはenctype = 'multipart/form-data'を使用してアップロードされたファイルには適用されません。 IIS 5.0を使用して90〜100 MBの範囲でファイルをアップロードします。ただし、server.scriptTimeout値と忍耐を増やす必要があります。

2
amelvin

HTTPには上限はありませんが、Webサーバーには上限があります。 ASP.NETには、デフォルトの4MBの受け入れ制限がありますが、ユーザー(開発者/ウェブマスター)はそれをより高くまたはより低く変更できます。

0
Hans Kesting

私が開発していたアプリケーションで、POST約2KBの制限と思われるものに遭遇しました。それは、パラメータをURLしたがって、問題が発生した場合は、POST URLにエンコードして送信できるデータのサイズに非常に小さな制限があります。

0
brycejl