• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:POSTメソッドの最大容量について)

POSTメソッドの最大容量について

Lchan0211bの回答

回答No.6

No.2,4,5です。 > 例えばcheckBoxの場合、チェックされている項目だけPOSTデータが渡るのですよね? > 実際には、checkboxにチェックをしないでボタンクリックして同じ現象になっていました。 はい。checkboxにチェックのない項目はPOSTデータで送信されません。 ただ、あなたの説明には > で、今までは □更新 の行だとしても 全て(見る聞く・・・)の情報を表示していました。 > 情報が無い場合はhidden項目にして。 > で、今回、「更新」の行に「見る」「聞く」などの情報は不要のため > hiddenで表示している項目を全て削除してみました。 と書かれてあり、「hidden項目にした」というのは、inputタグのtype属性を "checkbox"から"hidden"にしたのだろうと思いました。 例えば <input type="checkbox" name="miru" /> の部分を 更新の行については <input type="hidden" name="miru" /> としたのだと思いました。 そして、これだとトラブルが発生し、このinputタグ自体を 削除したらトラブルが発生しなくなったのだと理解しました。 <input type="hidden" name="miru" value="" /> の場合、miruパラメータは送信されないのではなく、 「miru=」(空白値のmiruパラメータ)が送信されます。 いずれにしても、パケットキャプチャで実際に送信されたPOSTデータを 確認すれば、このあたりの疑問もはっきりすると思います。

jg1wjz
質問者

お礼

Lchan0211b さん、重ね重ね有難うございます。 ソースの状況、及び変更内容はLchan0211bさんの説明通りです。 #<input type="hidden" name="miru" value="" /> #の場合、miruパラメータは送信されないのではなく、 #「miru=」(空白値のmiruパラメータ)が送信されます。 理解しております。 でも、チェックボックスはチェックをしない場合、そのグループ?!のnameは送信されないですよね? (修正後に送信されないことも確認できました) なのに、結果として削除しないとダメだったんですね。 他のパラメータの数が多すぎたんですかね。。。 今回はmaxでいうと、300行程度になる場合があるかもしれない仕様のようなので とりあえず、今のままでいけそうですが 今後はそうも行かないかもしれませんので、解決しないまでもちゃんと把握しておきたいと思います。 サイズの制限があるとしたら、 因みにnameの数もそうですが、当然渡すデータサイズも関係しますよね? max、20byteのパラメータが3個は・・・全行にあり、ここも不要な場合、削除しました。これは大きいですよね?(^^; まだまだですが、いろいろと勉強になりました。 WireSharkの出番ですね。 まだちゃんと使ったことが無いので勉強しながらやってみます。 ありがとうございました。

関連するQ&A

  • POSTメソッドで処理を分岐させるとCGI.pmの動きがおかしくなります?

    いつもお世話になっています 複数のチェックボックスのデータを、取得しいので CGI.pmライブラリの利用を考えました、プログラムの流れとしてはボタンを押したら チェックを入れた項目だけをコンソールに出力させたいのですが、 POSTメソッドでmode及びsctionに変数をセットしてやり、 サーバーに投げてやり、その値により 処理を分岐させたいのですが(データ追加処理とデータ出力処理に振り分ける) 所が、CGI.pmライブラリを利用すると、処理が行われません因みに #use CGI; #$q = new CGI; としてコメントアウトすると、分岐処理が行えますが、当然チェックした項目の出力はできません どこかおかしな所が在りますでしょうか、宜しく御教授お願いいたします。 コードが長くなってしまったので、下記のサーバーにアップしてあります http://www.geocities.jp/linux_rh_penguin/cgi.txt 申し訳ございませんが一読、宜しくお願いいたします。

  • フォームからPOST、ブラウザで結果を受ける

    フォームのテキストボックスに検索語を入れて、ボタンを押すと、 その結果を既定のブラウザで表示させたいです。 調べると、フォームがpostをして、「フォームがその結果を受け取る」というのは、 よく見るのですが、フォームがPOSTして、ブラウザが開いてサーバから返ってきた結果を 表示するというのはできるのでしょうか? 一度、ブラウザを立ち上げてそこからPOSTさせているというテクニックなどを 使っているのでしょうか? 例で言えば、一つのテキストボックス、一つのボタンで、 testと文字を入れて、ボタンを押すと、何かしらのPOST処理が行われて、 ブラウザが開いてgoogleの検索結果が表示される。 このような事をしたいのです、 なお、検索語は数字のみなので、2バイト文字は使いません。 よろしくお願いします。

  • PerlでPOSTを受け取るとタイムアウトになる

    PerlでPOSTを受け取るようになっているのですが あるサーバーでは正常に動作するのに、 あるサーバーではいつまでたっても画面が推移せず、結局タイムアウトになってしまいます 何故か、POSTをGETに変えると正常に動作するようになりますが、 そのCGIの使用目的上、GETの文字数制限が気になり、GETは使えません ちなみに、どちらのサーバーもWindowsで、 サーバーソフトウェアは、 動くほうは、ローカル環境で、ANHTTPDをを使っています。 動かないほうは、LAN上のサーバーで、04WEBServerです なぜこのようなことになってしまうのか 原因と解決策を教えていただけないでしょうか。 よろしくお願いします

  • WindowsアプリにPOSTのパラメータを渡す

    WebフォームからPOSTメソッドで送信したパラメータを、.NETのスマートクライアントに引き渡す方法を考えています。 ノータッチデプロイメントのスマートクライアントはどうやらクエリストリングを受け取ることはできるようですがPOSTが受け取れません。 現在試しているのはいったん、クエリストリングをASP.NETで受け取り、クエリストリングに変換してスマートクラインアントのページに転送するやりかたです。 この転送をサーバ内で処理しようとする(つまりServer.Transferを用いる)とブラウザはダウンロードされるのが.exeだとは気づかすテキストとして扱ってしまいます。Response.Ridirectを用いるとうまくいくのですが、これは結局クライアントがGETメソッドを投げてしまうので、できれば避けたい状況です。 なにかいい方法はないでしょうか?

  • SSIでPOSTデータを受け取りたい

    ○○.shtml中で <!--#exec cmd="××.cgi" --> としてcgiを実行しています(Perl) 表示は問題なくされています。 ここでフォームボタンを作りPOSTで同一の○○.shtmlファイルにデータを送りその中の××.cgiでデータを受信しその結果を表示させたいのですが、どうすればいいのでしょうか。 <form action="○○.shtml" method="POST"> ~中略~ <input type=submit value="送信"></form> こんな感じですと当然ながら○○.shtmlそのものはデータを処理しませんので、表示できません。 cgiに直接POSTでデータを送れば当然ながら○○.shtmlは関係ない世界になってしまいます。 試しに○○.shtmlへPOST送信をしてみても Method Not Allowed The requested method POST is not allowed for the URL /××/△△/○○.shtml. と表示されます。 どなたかご存じの方解決方法を教えてください。 よろしくお願いします。

    • 締切済み
    • CGI
  • CGI:method="post"でもGETになる

    CGIで標準入力によりフォームデータを取得できないため、環境変数%ENV内の値を 調べましたところ、入力フォーム(html)のformタグでmethod="POST"と明示しているにも 拘らず、REQUEST_METHODの値がGETになっており、POST用のCONTENT_LENGTHも GET用のQUERY_STRINGも共に空になっております。 htmlでmethod="GET"と指定した場合には、REQUEST_METHODの値は正しくGETになり QUERY_STRINGからフォームデータを取得できます。 同じCGIをPC上のApache2.4でテストした結果、REQUEST_METHODはhtmlのmethod=~で 指定した通り正しくPOSTまたはGETとなり、それぞれフォームデータを 取得できることを確認いたしております。 この点についてプロバイダに問合せいたしましたが、サポート対象外ということで、 回答を得ることができませんでした。 このような現象の原因について、お心当たりのある方がおられましたら、 ご教示いただけないでしょうか、お伺いいたします。 (1)ホスト動作環境 a.CGIサーバ:Apache b. perl 5.10系 (2)PC動作環境 a.OS: Windows 7 b.ブラウザ: Internet Eexplorer 11 c.CGIサーバ: Apache 2.4 d. Activeperl 5.20

    • 締切済み
    • CGI
  • コマンドラインでGET or POSTできますか?

    ふとしたことで、cgiからcgiを呼び出す必要に迫られてしまいました。そこで、呼び出す側はsystem()でやるとして、引数はどのように渡したらいいのでしょうか。 ブラウザでは、メソッド指定で呼び出せますが、コマンドラインでgetまたはpostで渡す方法というのはありますか? /hoge.cgi?name=value というのをPOSTでやりたくて、 $tmp = "name=value"; system("echo $tmp | perl hoge.cgi"); とか試して爆沈しました...(汗

    • ベストアンサー
    • Perl
  • ブラウザとCGIアプリの関係?!

    なんとなく想像はできるものの、正しいかどうか確認させていただきたく 質問させていただきます。 WEBアプリですが、例えば 「ブラウザの処理実行ボタン」クリック→「CGIアプリ」→「結果表示」 のような流れだったとして、 処理実行ボタンをクリックしてすぐにブラウザを閉じた場合、CGIアプリはどこまで処理が行えるのでしょうか? ※CGIアプリの処理はブラウザを閉じるまでの時間よりは長いとした解釈でお願いします。 CGIアプリがreturnで抜けるまで、ブラウザはなくても処理は行ってから終了。 また、 returnの前にブラウザに出力していたら、(ブラウザは無いわけで)returnの前にCGIアプリは終了してしまう。→処理途中で終わってしまうことがありえる よろしくお願いします。 わかりづらかったら、申し訳ありません。

    • ベストアンサー
    • CGI
  • CGIでGETで送信するパラメータの最大長が知りたいのです。

    CGIでGETで送信するパラメータの最大長が知りたいのです。 ブラウザ(クライアント)毎に違うのでしょうか、 それとも、CGIはPerlを使っているのですが、サーバー側の仕様になるのでしょうか? あと、index.cgi[ここからパラメータとして扱われる??? ?, &もパラメータサイズに含まれるのでしょうか? 結構長いパラメータをGETで送信しないといけなくて、たとえば携帯やPDA(ザウルスSL-C860)など大丈夫かなと心配しています。 POSTは無制限でしたよね? でも、今回は必ずGETでないといけませんので・・・

    • 締切済み
    • CGI
  • Rubyでnet::httpを用いてPOSTする

    今晩わ。 RubyでNet::HTTPをもちいてPOST送信する際の処理について 質問です。 Net::HTTPクラスのインスタンスメソッドのpostメソッドを用いて送信する場合 送信内容を # version 1.2 (Ruby 1.8.x or later) response = http.post('/cgi-bin/search.rb', 'query=subject&target=ruby') 上記のように、引数に渡していると思います。 このとき、値の中にパラメータのデリミタと同じ&を入れたい場合どうしたらいいのでしょうか? 例えば query=subject&target=ruby&PHP のような感じでvalueとして&を渡す場合です。 Net**HTTP::Postクラスのrequestメソッドを用いてハッシュとして渡した時は問題なかったのですが、上記のpostメソッドの時がPOSTされた値を取得するときにキチンと取得できませんでした。これはなにか対処方法があるのでしょうか? ご教授ください。 おねがいします。

    • ベストアンサー
    • Ruby