HTTP POSTには、送信できるデータサイズに仕様の制限がないと聞きました。それは本当ですか、それとも本当に高い制限がありますか?
回答:
編集(2019)この回答は現在かなり冗長ですが、より関連性の高い情報を含む別の回答があります。
それはむしろウェブサーバーとウェブブラウザに依存します:
InternetExplorer すべてのバージョン2GB-
1MozillaFirefox すべてのバージョン2GB-
1IIS 1-5 2GB-1
IIS 6 4GB-1
IISはデフォルトで200KBしかサポートしていませんが、メタベースはこれを増やすために修正する必要があります。
http://www.motobit.com/help/scptutl/pa98.htm
POSTメソッド自体にデータのサイズの制限はありません。
それが重要な唯一のWebサーバーであるかのように、すべての回答がIISについてどのように話しているかは非常に驚くべきことです。質問があった2010年にさえ、Apacheは市場シェアの60%から70%を占めていました。とにかく、
min(serverMaximumSize, clientMaximumSize)
です。人気のあるHTTPサーバーのPOSTボディサイズは次のとおりです。
POSTでは、任意の長さのデータをサーバーに送信できますが、タイムアウト/帯域幅などに基づく制限があります。
基本的に、大量のデータを送信するのは大丈夫ではないと考える方が安全だと思います。
この(現在は削除されている)記事によると、さまざまなIISWebサーバーが「ヘッダー」内のさまざまな量のデータを処理できます。http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html ;
POSTを介して渡すことができるFORM要素の数に制限はありませんが、すべての名前と値のペアの合計サイズにのみ制限があることに注意してください。GETは1024文字に制限されていますが、POSTデータはIIS4.0では2MB、IIS5.0では128KBに制限されています。SGML仕様で課せられているように、各名前/値は1024文字に制限されています。もちろん、これはenctype = 'multipart / form-data'を使用してアップロードされたファイルには適用されません... server.scriptTimeout値を増やす必要があることを除けば、IIS 5.0を使用して90〜100MBの範囲のファイルをアップロードすることに問題はありません。私の忍耐と同様に!
HTTPには上限がない場合がありますが、Webサーバーには上限がある場合があります。ASP.NETには、デフォルトの受け入れ制限である4 MBがありますが、ユーザー(開発者/ウェブマスター)はこれをより高くまたはより低く変更できます。