HTTP POSTは無制限にできますか?


回答:


75

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


Metabase.XMLについて言及することに賛成し、ファイルのアップロードサイズの制限を変更するさまざまな方法をリストしました。
Durai Amuthan.H 2014

コマンドプロンプトに次のコマンドを入力すると、ファイルのアップロードサイズの制限を増やすことができます。 "cscriptC:\ inetpub \ adminscripts \ adsutil.vbs set w3svc / ASPMaxRequestEntityAllowed 10484880"(バイト単位)参照:serverintellect.com/support/iis/uploaddownload-size-limits -iis6
Durai Amuthan.H

または、C:\ windows \ system32 \ inetserv \パスでmetabase.xmlを見つけて編集しますが、[直接メタベース編集を有効にする]が有効になっていることを確認します。参照:banmanpro.com/support2/file_upload_limits.asp
Durai Amuthan.H 2014

またはあなたのweb.configファイルでは、あなたのsystem.web下の行を追加します。<のhttpRuntime executionTimeout = "54000" maxRequestLength = "512000" /> weblogs.asp.net/mhawley/archive/2004/05/11/129824.aspx
Durai Amuthan.H 2014

現在(2019)のWebサーバーについては、この回答を参照してください。
ダンダスカレスク

76

それが重要な唯一のWebサーバーであるかのように、すべての回答がIISについてどのように話しているかは非常に驚くべきことです。質問があった2010年にさえ、Apacheは市場シェアの60%から70%を占めていました。とにかく、

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

人気のあるHTTPサーバーのPOSTボディサイズは次のとおりです。


4
Webサーバーについて言及している回答のうち、2つはIISについて言及しており、1つはApacheについて言及しています。とにかく、より完全で最新のあなたへの道標への私の答えを編集しました。
デビッドニール

3
ありがとう@DavidNeale!そのためのバッジがあるはずです:)私はこの答えを最新の状態に保つように努めます。nginxの最大値を追加しました。
ダンダスカレスク

これについて:「URLの長さによって制限されるGETメソッドよりも多くのデータ-約2KB」。ヘッダーはどうですか?パーこの記事には、ヘッダが8〜16キロバイト程度を許容することが表示されます。
ハンス・ボン

27

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


Apacheの最大値は4GBですか?私はそれが2GBであると文書化れているの見つけました
ダンダスカレスク

@DanDascalescu:わかりません、私は長い間これをしていません。おそらく彼らはLimitRequestBody指令に上限を課し始めたのでしょう。
グレッグヒューギル

6

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

基本的に、大量のデータを送信するの大丈夫ではないと考える方が安全だと思います。


2
タイムアウトなどでどれだけ危険になるかについての経験則はありますか?
vextorspace 2014

3

この(現在は削除されている)記事によると、さまざまな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の範囲のファイルをアップロードすることに問題はありません。私の忍耐と同様に!


1
良い編集@ Matt-盲目的にリンクするのではなく、顕著な事実を切り取ることが重要であることを示しています
amelvin 2016年

1

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.