2009-11-18 11 views

答えて

48

フォームを送信する方法によって異なります。

GETでは、ブラウザとサーバーの制限によって、約1〜2キロバイトの一般的に合意された制限があります。

POSTでは、ブラウザに技術的な制限はありませんが、通常はサーバー側に1つあります。 ApacheのLimitRequestBody、PHPのpost_max_sizeなど。

+0

下記の@naugturで指摘されているテキスト入力フィールドの問題に注意してください。少なくとも、ブラウザによっては技術的な制限があります。 – Oliver

+0

私はちょうど3つの現在のブラウザ(IE9、FF10 ESR、クロム24)でいくつかのテストを実行しましたが、彼らは100KBの隠された入力値を問題なく提出しました。したがって、テキスト入力の問題はここでは適用されないようです。 – Oliver

+0

'textarea'sについてはどうですか? –

27

警告!私は<input type="text">で、テキストが65535(max signed int size)より大きい場合に問題が発生しました。

テキストを貼り付けることで、コンテンツの奇妙なオーバーフローが発生するようです。 Webkitで発見されました。

[編集]

GETリクエストのサイズを正確ペッカが書いた方法に限定されるものではありません。 GETクエリ文字列全体には、2083バイトの制限があります。Internet Explorerのみ 他のブラウザでは、FireFoxが100KBを超えるGETクエリを送信するなどの制限はありません。明らかに、サーバーはそれらを許可する必要があります。

他のブラウザの制限を知るためには、ドキュメントには記載されていないため、テストする必要があります。 IE:http://support.microsoft.com/kb/208427

+2

+1ブラウザは入力フィールドを切り捨てます。 – goat

+8

+1入力値を非常に長い文字列に設定すると何が起こるかをテストするためにこのjsFiddleを作成しました:http://jsfiddle.net/3TVPL/6/文字列65537文字を使用しました。私のテストでは、Windows用のCrome 24.0.1312とSafari 5.1.7は、その文字列に値を設定した後、入力ボックスを空にしています。文字列を65536文字に減らすと、Chromeは適切な空でない値を表示します。他のブラウザ(Firefox 17、IE8、IE9、IE10、Opera 12.12)は文字列でさえずっと問題がありませんでした(私は最大約1.2Mbの文字列まで行きました) – beluga

+0

@beluga素晴らしい仕事。パフォーマンスに関するあらゆる考え?私の弱いマシンでは、それは長い間待っていた。私はそれがウェブキットがそれをレンダリングしない理由だと思う。 – naugtur

関連する問題