WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:<form>タグ内のパラメータの最大個数について

0:[投稿] さる [2003/03/14 19:53 ][環境:Internet Explorer 6.0.2800.1106 Servlet]

<form>タグ内に配置するパラメータの最大個数は、仕様で決まっていますか?
こちらで確認してみたところ、およそ200個を越えるとsubmitすることができなくなるようです。
これが仕様で仕方ないものなのか、もしくは何か設定することによってもっとパラメータを置くことができるようになるのか、ご存知の方がいらっしゃいましたらお願い致します。


1:[回答] andi [2003/03/14 20:47 ]

最大個数の仕様は分かりません(それ以前にクライアントの環境にも左右されそうですし)が、
200個のコントロールを配置するのは、それ以前にサイトの設計を一度、考え直した方が良い気がします。
具体的な仕様を知っている訳ではありませんので、もしかすると、それが絶対に必要なのかもしれませんが。


2:[回答] ・・ [2003/03/16 01:39 ]

ブラウザによって、送信する文字数(バイト数)に制限があったようなことを昔調べました。
またgetとpostによっても違ったりしました。

ちなみに送信する文字数には
http:// からの文字数で、 サーバ名、ディレクトリ、CGI名などのパス、input要素などのname属性値も含みます。
例 : http://www.parkcity.ne.jp/~chaichan/qanda/qa3777.htm?03-03-14-20-47
だと、 http://www.parkcity.ne.jp/~chaichan/qanda/ で42文字になります。 ファイル名が10文字、 CGI等へのパラメータ部分が?を含めて 15字 合計67字 。

尚、IE5.5 のgetは1900〜2000、 postは2000以上でしたのでpostを使用しました。


3:[回答] ひじ [2003/03/17 22:27 ]

まず、・・さんがいっている通り、GETメソッドかPOSTメソッドかによって話が異なるので、質問者はそれを明らかにしてほしい。

GETメソッドでは、form要素のaction属性値で表されるURIの末尾に"?"を追加し、その後ろにフォームデータ集合を付け加えてURIを作成し、そのURIで再リクエストするだけである。したがって、ブラウザで扱うことができるURIに関する制限と、サーバで扱うことができるURIに関する制限の両方によってGETメソッドで取り扱うことのできる量が決まってくる。
Apacheの場合、サーバ設定ファイル(httpd.conf)のLimitRequestLineディレクティブで決まる。GETメソッドの場合、 http://www.parkcity.ne.jp/~chaichan/qanda/qa3777.htm?03-03-16-01-39 へのリクエストは、

GET /~chaichan/qanda/qa3777.htm?03-03-16-01-39 HTTP/1.1
Host: www.parkcity.ne.jp

という形になる。 GET の行が LimitRequestLine (デフォルトでは8190) で設定されたバイト数を超えると、エラー(414 Request-URI Too Large)となる。
なお、Webブラウザの制限がこれよりも厳しければ、Webブラウザの制限の方で引っ掛かる。

POSTメソッドの場合は、submitされた内容はaction属性値で指定されたURIにメッセージボディとして送られる。
Apacheでは、これを LimitRequestBody ディレクティブで制限できる。デフォルトは0(無制限)であるが、いわゆるDoS攻撃を防ぐために制限を設けている場合がある。このときは、その設定の制限を受ける。


4:[回答] ・・ [2003/03/18 09:59 ]

>3 POST の方には、ブラウザでの制限はないのですか?


5:[回答] さる [2003/03/19 10:42 ]

情報が足りず申し訳ございません。
POSTメソッドの方です。
<form>タグを作成し、その内部に大量の<input>要素と、一つのsubmitボタンを配置します。
そのsubmitボタンを押すと無反応で、サーバーにアクションがまったく飛んでいません(画面に変化がありません)。
恐らくブラウザ側の何かしらの制限があるのではと考えているのですが・・・。
wwwサーバーはtomcatを利用しています。


6:[回答] 突っ込み隊 [2003/03/19 13:41 ]

そんなに、<input>要素があるなら、文法チェックエラーは、ありませんか?


7:[回答] さる [2003/03/19 16:40 ]

Macromedia社のDreamWeaverを利用して確認したところ、文法チェックエラーは発見されませんでした。

時間がないため、andiさんのおっしゃるようにとりあえずサイトの設計を見直すことで対策をしたいと思います。
しかし、今後の開発のためにも原因を把握しておきたいと思っています。
ご存知の方がいらっしゃいましたらお願い致します。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World