• ベストアンサー

CGIにステートレス、ステートフル?

よろしくお願いいたします。 CGIはステートレスでセッションが区別できない。 しかし、JAVAサブレットはステートフルで CPUの負担を軽減させ、安定している と言う表現がテキストにあったのですが、 いったい何を言っているのか分かりやすく 説明していただけないでしょうか? 是非よろしくお願いいたします。 ケーブルでのステートレスとかならイメージが湧くのですが・・・

  • gaia5
  • お礼率99% (116/117)
  • CGI
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> 状態をもてるとユーザー側からみて > メリットはあるのでしょうか? 複数ページにわたって処理をするような CGI では、「状態」を保持する必要があります。 例えば、会員制のネット販売(ログインをした会員情報を保持する)とか、項目が 多いアンケートページ(前のページまでの回答を保持)とか。 CGI でも、頑張れば状態を保持できるのですが、頑張らないといけません。 というわけで、開発言語の違いを除けば、大きくメリットを教授できるのは開発者の 方になります。

gaia5
質問者

お礼

遅くなりまして申し訳ありません。 回答ありがとうございました。 なるほどものすごく分かりやすい説明で大変助かりました。 開発者にとってメリットが大きいんですね。 ありがとうございました。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

ここでいう「ステートレス」、「ステートフル」というのは、状態を持てないか・持てるか の違いを言います。 主に「状態」は、前回(前々回でも良いんですが)に実行された CGI がどういう 状態だったか、を指します。普通は、その実行時に指定されたパラメータや、実行結果を 状態として受け渡せるかどうか、です。 普通の CGI は、起動されるたびに別のプロセスとして起動され、前回に何をやって いたかどうかは、CGI の仕組みだけでは伝えることができず、Cookie やサーバの ファイルを経由して受け渡さないと分かりません。 サーブレットは、サーブレットコンテナの配下で動く Java のスレッドで(なんて、 仕組みを知っている必要はわからなくてもいいんですが)状態を受け渡すための 仕組み(セッションオブジェクト)を持っています。 また、ステートフルであるかどうかと「CPUの負担を軽減させ、安定している」とは 直接つながりはありません。処理を実行するたびにプロセスを作るかどうかが CPU負荷の軽減につながります。

gaia5
質問者

お礼

お忙しい中、回答ありがとうございます。 なるほと状態を区別するかしないかの 違いがあるんですね。 状態をもてるとユーザー側からみて メリットはあるのでしょうか? もし良かったらまたレスいただけるとうれしいです。

関連するQ&A

  • 【CPU対戦ができる遊戯王CGI】

    【CPU対戦ができる遊戯王CGI】のあるサイトを探しています。 ネット上で無料でできる遊戯王CGIが設置されているサイトは 数箇所見つけたのですが、すべてが負担軽減のため CPU対戦が不可に設定されています。 ビギナーの自分にとって、対人対戦のみでは 練習にほとんどならず、できればCPU対戦でテストしたいと 考えています。どなたかCPU対戦のできる遊戯CGIのありかを 教えていただけないでしょうか。よろしくお願いします。

  • Perlで作成したCGIについて

    Perlで作成したCGIについて Perlで作成したCGIについて質問させていただきます。 #################### ##(1)system.cgi ## #################### #!c:/Perl/bin/perl.exe use strict; use warnings; use CGI; use CGI::Carp('fatalsToBrowser'); use CGI qw(:standard); print "Content-type:text/html;charset=utf8\n\n"; system('C:\\test.txt'); ##################################################### C直下にあるtest.txtの中身は「abcd」など 簡単なものです。 ##################################################### ################### ##(2)win32.cgi ## ################### #!c:/Perl/bin/perl.exe use strict; use warnings; use CGI; use CGI::Carp('fatalsToBrowser'); use CGI qw(:standard); use Win32::API; print "Content-type:text/html;charset=utf8\n\n"; my $MessageBox = Win::API -> new("user32","MessageBoxA","NPPN","N"); $MessageBox -> Call(0,"HelloWorld","Message",0); ##################################################### ##################################################### 以下にスペックを書きます。 Microsoft Windows XP Professional version2002 Service Pack2 Genuine Intel(R)CPU L2300 @1.50GHz 1.50GHz,1.49GB RAM ・ActivePerl ver5.10.1 built for MSWin32-x86-multi-thread ・Apache Apache 2.2.14(Win32) ##################################################### 上記の(1)、(2)のプログラムをエクスプローラ上(ローカル)で実行させて(1)ではテキストファイルを、 (2)ではメッセージボックスを表示させたいです。 結果は時間がかかるだけでTimeOutの設定である5分で切れてしまい何も起こりません。 しかし、全く同じプログラムで拡張子を.plに変更してコマンドプロンプトで実行すると、 期待通り(1)はテキストファイルが開かれ、(2)ではメッセージボックスが出てきます。 (1)、(2)ともCGIではsystemおよびMessageBoxの部分をコメントアウトして print文などを書けば普通にエクスプローラに表示されます。 (かなりhtmlとしては不備があると思いますが・・・) どうすればCGIで(1)、(2)のプログラムが期待通りの動きをするのか どうぞご教授のほどよろしくお願いいたします。 何か足りない情報や意味の分かりづらい個所がありましたら、仰ってください。 ちなみにこのプログラムは公開するために作成しているのではありません。 下手な説明、長文すみません。

  • DTMをする際のCPUについて

    こんばんは。WinでDTMをしているものです。 ソフトはCUBASE studio 4を使用しています。 PCのCPU、メモリ等の詳細は以下のとおりです。 Intel(R) Pentium(R)4 CPU 3.00GHz 2.99GHz,0.99GB RAM と記載されていますが、未だにメモリとCPUの区別がわかりません。(汗・・) CUBASE動作時にCPU使用率が上がってしまうのは、しょうがないとは思っていますが、今後CUBASE上でファイルやフリーソフトをインストールした時に動作が鈍くなって作業がしずらいと困ります。 作業効率とPCへの負担軽減を考えた時に、何を増やせばいいのかどなたかわかられる方教えてください。 ※この説明では、ちょっとわかりづらいですよね・・・ とにかくDTMに詳しい方!!教えていただければ嬉しいです。

  • CGIで書き出したJavaScriptの動作不安定?

    JavaScriptの動作不安定につき、ご教示ください。 <a href="aaa.cgi">あああ</a>からCGI (perlで記述、サーバーはApache) を 呼び出し、JavaScriptを含む下記のようなhtmlを返しています。 <html><head> <script language="JavaScript"><!-- function first() { window.alert("注意書き"); document.forms[0].elements[0].focus(); } //--></script></head> <body onLoad="first()"> <form><input type="text"> IE5/Win&Mac及びNN4.7/Winで「あああ」をクリックすると、設計どおり 注意書きが表示され、警告窓を閉じるとテキストボックスにカーソルが来ています。 ところが、NN4.7/Macで「あああ」をクリックすると、目的ページが一瞬表示 された後に消え、すぐ再描画され、警告窓もカーソルも出ません。この状態でも、 ソースを見ると上記スクリプトは書出されおり、submitすればform送信に支障は ありません。また、ブラウザボタンで「再読込み」するか「戻る > あああ」で 点滅・再描画の現象なく再表示され、警告窓とカーソルも設計どおりです。 思い当たる原因があるでしょうか? 解消法はあるのでしょうか? 要領を得ない状況説明で恐縮ですが、追加説明は補足要求でご指示くださいませ。

    • 締切済み
    • CGI
  • ケースファンケーブルとはなんですか?

    現在自作のPCを作成しているのですがCPUの取り付けのときに「デュアルコアCPUを取り付ける場合、システムの安定性を図るためケースファンケーブルをCHA_FAN1コネクタに接続してください」と説明書に書いてあるのですがケースファンケーブルがなんなのかさっぱりわかりません。どなたかご存知の方は教えていただきたいです。よろしくお願いします。

  • フォームボタンをテキストに変更したい

    通常はCGI01のようにボタンなり画像なりをクリックするとcgiを叩けますが そのボタン部分をテキスト(リンクを張りユーザーにはわからないように)に変更したいのです。 つまり アクションとしては通常のリンクをクリックすると~index.html?link=1(value=1)を得たいのです。 のようなイメージです。 CGI02として予想を書きました。 うまく表現できないのですが、ご存知でしたらご教授お願いいたします。 CGI01 <form action="index.cgi" method="GET"> <input type="submit" name="link" value=1> <a href="">link</a> CGI02 <form action="index.cgi" method="GET"> <input type="hidden" name="link" value=1> <a href="">link</a>???

    • ベストアンサー
    • Perl
  • サムネイルについて

    サムネイルをクリックすると、大きい商品画像&説明文を表示させたいのですが、どうすればいいのでしょうか? 説明文はテキストフィールドで収まるようなものでなく、テーブルを使って詳しい商品説明をし、レイアウトしたいのですが…。 ↓このページの表示がイメージに近いです。 http://www.chimudon.com/home/gallery/gallery.cgi?mode=main&action=view&no=11&photono=1&tailno=.jpg&wno=363&hno=282

  • ビデオボードの基礎知識

    特定の製品ではなく、一般的な知識としてお伺いしたいのですが・・・ オンボードから後付のビデオボードにグレードアップすることによって、 (1)あらゆる動画、画像などの映像表示能力は高速化、安定化するのでしょうか? (2)ストリーミング動画のバッファ処理は速くなるのでしょうか? (3)映像関連の処理をビデオボードに任せることで、本体のCPU負担は軽減されるのでしょうか?(複数のアプリケーションを起動させている時のモタツキが軽減できるかどうかと言う意味です) 3Dゲームなどの高度な使用目的ではなく、DVD再生、編集、動画のダウンロード再生などが主な使用目的です。

  • windows メールアプリの送受信の形式

    win live mailが不安定とかで、windows10のメールアプリ(outlook)に切り替えましたが、win10メールアプリでの送信でテキスト形式か、HTML形式の区別が分からず送信できません。 メールの設定内にも説明らしき項目が見つからず、始めたばかりで皆無状態です。よろしく御教示ください。 ※OKWaveより補足:「富士通FMV」についての質問です。

  • プログラム上のCPU稼働率低減に関して

    C++の簡易なプログラムを長時間実行しっぱなしにしたいのですが、 CPUが常に100%の稼働率になってしまうため、PCが熱暴走してしまうのではないかと心配しております。 対策としてはPCの冷却を徹底することも考えられるのですが、 プログラムを工夫して(例えばメモリの使用領域を設定変更する)CPUの負担を軽減することは可能でしょうか? プログラムの内容は[1000][300000]の配列を宣言し、 1秒間に20回、配列の中身を0~1000まで永遠に書き換え、 その内容をグラフィックで示すものです。 メモリの使用量は膨大になることは覚悟していたのですが、 CPUの稼働率が終始100%になってしまうのは、困っております。 対策をご教授いただけると助かります。 もしくは説明不足な点がありましたらお申し付けください。

専門家に質問してみよう