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

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

Lchan0211bの回答

  • ベストアンサー
回答No.7

No.2,4,5,6です。 > 因みにnameの数もそうですが、当然渡すデータサイズも関係しますよね? > max、20byteのパラメータが3個は・・・全行にあり、ここも不要な場合、削除しました。これは大きいですよね?(^^; もちろん渡すデータサイズがPOSTのサイズに関わってきますが、 max20バイトだったら、200行×8チェックボックス×20バイト=32Kバイト 程度のものですよ。POSTデータとしてはたいしたことないサイズだと思います。 (画像のアップロードにもPOSTを使いますが、そんなのは数メガ行く場合もあります) 追加の観点としては、そのCGIのパラメータ解析処理に問題がないかも 見た方がよいと思います。もしかして32Kの固定バッファを使って POSTデータを読み込んでいて、32Kバイト以上のPOSTデータを受信すると バッファオーバーフローでメモリ破壊してしまい、DBオープン処理や GetPrivateProfileStringが正常に実行できなくなっているという可能性は ないでしょうか?ということです。

jg1wjz
質問者

お礼

Lchan0211b さん、引き続き有難うございます。 cgiクラスのソースを見ましたところ、 POST用のバッファはGlobalAlloc()で確保していました。 内部的な話かもしれませんが、フィールド数も36864とっていました。 今週中にはwiresharkで確認できるかもしれません。

jg1wjz
質問者

補足

その後、、、別問題が発生し、 ##onloadのタイミングについて、 ##別Qをたてているのですが、 ##マッチする回答が付きませんでした。 ##が、そこで問題が見つかってしまいました!  未だにパケットキャプチャできていません。 結果を報告してからと思ったのですが、 時間がかかりそうなので、ベストアンサーにさせていただきます。 有難うございました。

関連する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