- ベストアンサー
ブラウザとCGIアプリの関係?!
- ブラウザとCGIアプリの関係について知りたいです。
- WEBアプリでの処理実行時の流れや、ブラウザを閉じた場合のCGIアプリの処理について教えてください。
- CGIアプリが処理を行う時間はブラウザを閉じるまでですが、途中で処理が終了することもあるのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>入力→DBオープン→処理→処理・・・→出力→後処理・DBクローズ→return ユーザーに求める動作がないなら 出力より先に後処理とDBクローズをしたほうが良いですね 不具合の原因になります
その他の回答 (4)
- angel2015
- ベストアンサー率21% (126/590)
>また1行出力して、、、など繰り返しても最後まで動くのでしょうか? ブラウザがなくなっていても。 アプリの言語によるところが大きいです 言語によっては常にブラウザを開いていないと動作しないようにプログラムされています 厳密に言えばperlでもブラウザと常に相互通信していないと中断するようにはできます しかし一般的なperlでは、ブラウザの状態を無視して処理を行います なんでこの場合、言語を特定して質問しないと回答もばらばらになります 他の回答を見たらc++となっていたので、リアルタイムに動くものなら ブラウザから応答がない場合処理が中断するなどの対応をアプリに組み込んでいるかどうかですね
お礼
angel2015 さん、ありがとうございます。 #他の回答を見たらc++となっていたので、リアルタイムに動くものなら #ブラウザから応答がない場合処理が中断するなどの対応をアプリに #組み込んでいるかどうかですね CGIプログラムは一応、入力から出力まで、一気に(!)必要な処理をしてreturnしているだけで、ブラウザの状態は無視しています。 入力→DBオープン→処理→処理・・・→出力→後処理・DBクローズ→return みたいになっています。 で、出力のところでログが止まっていました。 他のログは全て後処理までログが残っています。 一箇所だけ、後処理ログが無く、、、 想像ですが、出力(printf())のところでログが止まっているので もしかして、ここでブラウザが閉じられたのでは? と思い、 ホントのところ、CGIプログラムはブラウザが閉じられたらどこまで動くのか、確認したく質問させていただきました。 ・・・ということは、 最後まで動くということでしょうか???
- t_ohta
- ベストアンサー率38% (5238/13705)
> サーバ側の環境設定って、どこを調べたらいいでしょうか? httpd、CGIプログラムの言語は、それぞれ何をお使いでしょうか?
お礼
t_ohta さん、 WEBサーバーは、IIS7.0(WindowsServer2012 R2)、 言語は、c++になります。
- t_ohta
- ベストアンサー率38% (5238/13705)
サーバ側の環境設定によっては、httpのセッションが切れた時点で処理が中断される場合もあるし、一通り処理が終わるまで継続される場合もあります。
お礼
t_ohta さん、ありがとうございます。 サーバ側の環境設定って、どこを調べたらいいでしょうか? CGIアプリのログを見ますと、画面に出力しているところで切れています。 後処理のログが無いのです。 その原因を調べているのですが、ブラウザ右上の「×」をクリックすると こういうこともあるのかな、、、と思いまして。 サーバ側の環境設定で、それを防げれば、、、と思いまして。 よろしくお願いします。
- angel2015
- ベストアンサー率21% (126/590)
一般的なCGIはperlだと思いますのでperlだとして回答します perlは入力(閲覧)が来たら出力(情報)を返すだけです 返却先がブラウザを閉じていても関係ありません また、それがサーバー上のデータを書き換えるものならブラウザを閉じてもデータは書き換わっています
お礼
angel2015 さん、有難うございます。 確かお礼コメントを入れたはずなのに、今見たら、、、無い! ので 内容変更して再度書き込ませていただきます。 Perlだとして、(すみません、perlわかりませんが) 処理の途中で1行だけ出力して、その後 またの処理をして、 また1行出力して、、、など繰り返しても最後まで動くのでしょうか? ブラウザがなくなっていても。 そんな作り方はしない・・なんていう回答は無しでお願いします。(^^;
お礼
angel2015 さん、 やはり、この順番は不具合の原因、、、 ブラウザを閉じると、printf() が異常となり、CGIプログラムは 終了してしまう、、、 そんな気がしますよね。 次回、カスタマイズまたは開発時には気をつけたいと思います。 ありがとうごさいました。