- - PR -
ブラウザのタイムアウト時の動作について
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-05-16 17:04
zaxx_MDさんへ
静的コンテンツではなく、CGI/perlでテストしました。 #!/usr/local/bin/perl sleep(1000) ; レスポンスは1バイトも返却していません。 また、プロキシは間に存在していません。 JSP/Servletなら再現すると言うことですか? それともjavaアプレットのはなしですか? | ||||
|
投稿日時: 2003-05-16 17:16
当方、CGI/perlでもServletでもどちらでも再現します。
環境面での差というとHTTPServerがIBM HTTP Server(apache)というところでしょうか・・ | ||||
|
投稿日時: 2003-05-16 17:32
でぽんです。
zaxx_MDさんの返答から java.net.HttpURLConnectionをキーワードで調べてみたところ、 当初の疑問は解決できそうです。 ありがとうございました。 まずはサーバ側の動作検証をとることを優先し、 HTTPServerのhttpd.confファイルにあるtimeout設定を調整することで 回避することにしました。 また、30秒の件ですが、TCP/IPプロトコル上での動作を表している、 つまりは、TXに対してRX(ACK/NACK?違っていたらゴメンなさい)が 30秒以内に返送されないとダメよ。と受け取りましたが、 誤解無いでしょうか。 #リクエスト/レスポンスという表現がよくなかったのかな? 皆さんのご意見など非常に参考になります。 改めて御礼いたします。 | ||||
|
投稿日時: 2003-05-16 18:25
zaxx_MDさんへ
手元にIBM HTTP Serverがないので、apache 1.3.22/2.0.45にてテストしましたが、再現しませんでした。 Internet Explorerのバージョン、IBM HTTP Serverのバージョン、cgiを起動するHTMLソースを見せてもらえませんか? また、Netscape 4.7/7.0等はどうなるのでしょか? | ||||
|
投稿日時: 2003-05-19 23:29
突然ですが。。
この件の結果がきになるのですが。 javaにおけるWebアプリケーションの実装者が ブラウザのタイムアウトを5分(webサーバの設定による) として、それ以内で処理を完了させる(もしくは別の方法を考える) というのは間違えだったのか? という不安が払拭されないのですが。。 すくなくとも私は幾多のWebアプリをつくってきて 30秒という数値をアプリケーション実装者が意識 する必要はないとおもってます。 | ||||
|
投稿日時: 2003-05-22 12:23
zaxx_MDさんへ
返答して下さい。 他の方でも構いません。類似する情報をお持ちの方は書き込みをお願いします。 | ||||
|
投稿日時: 2003-05-22 13:57
TCPセッション確立のレベルで言うところのACKでしょうかね?
通常は一定期間ACKが返ってこない場合にリトライしますね。 その期間が30秒なんではないでしょうか? で、もしそうなら、接続は確立されないのでアプリケーション側で考慮 する必要などないですね。(ACKに対する応答をしないので) また、キープアライブ接続の場合は、 最初にTCP接続を確立する時のみで、リトライってしない?んじゃないかな? | ||||
|
投稿日時: 2003-05-23 18:50
おっとすみません、他の方の解説で十分だと思いましたのと、 業務でちょっと返答が遅れてしまいました。 とりあえず、httpd.confのtimeout設定を見てください。 また、CGIやサーブレットの処理で最初にResponseに何か書いてしまうと、 直接続でも再現しないようです。 すでに会議に遅刻しているので今日はこれまででお願いします | ||||
