HTTP POSTは、送信可能なデータサイズに仕様の制限はありません。それは本当ですか、それとも本当に高い制限がありますか?
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メソッド自体には、データのサイズに制限はありません。
すべての回答がIISについて語っているのは、驚くべきことです。質問が行われた2010年にも、Apacheは 60% と 市場シェアの70% の間でした。とにかく、
min(serverMaximumSize, clientMaximumSize)
です。一般的なHTTPサーバーの一部のPOST本文サイズは次のとおりです。
HTTPプロトコル自体による制限はありませんが、実装には実際的な上限があります。 POST=を使用して4 GBを超えるデータをApacheに送信しましたが、一部のサーバーには4 GBの制限がありました。
POSTでは、任意の長さのデータをサーバーに送信できますが、タイムアウト/帯域幅などに基づく制限があります。
基本的に、大量のデータを送信することはnotでよいと仮定する方が安全だと思います。
別の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値と忍耐を増やす必要があります。
HTTPには上限はありませんが、Webサーバーには上限があります。 ASP.NETには、デフォルトの4MBの受け入れ制限がありますが、ユーザー(開発者/ウェブマスター)はそれをより高くまたはより低く変更できます。
私が開発していたアプリケーションで、POST約2KBの制限と思われるものに遭遇しました。それは、パラメータをURLしたがって、問題が発生した場合は、POST URLにエンコードして送信できるデータのサイズに非常に小さな制限があります。