AN HTTPD ゲストブック/コメント集(1999年10月28日00:58)


Dne dnemk@world.interq.or.jp 1999/11/03 23:47

>ぴゅあさん
このメールアドレス届くのですか?(笑
あとたぶんソースは関係ないと思うのですが・・・
違う環境では正常ですので。(SEに変えてからおかしくなったような)
ActivePerl(ビルドが変わってますが)
http://www.activestate.com/ActivePerl/download/APi522e.exe
ftp://ftp.activestate.com/activeperl/APi522e.exe
ftp://ftp.linux.activestate.com/pub/ActivePerl/APi522e.exe
一番速そうなのをどうぞ〜


ぴゅあ pure@GalaxyCorp.com 1999/11/03 02:49

>Dneさん
 @ENVは単に参照しているだけなのですよね。
 もし差し支えなければソースコードを拝見させて頂ければと思ったりもします。
 取り敢えず壊しても良いだろう(あ でも動くかな?マシンが重いから。。。。)Win98が1個
あると思うのでそれにIE5を入れてみるというのも考えてみますが。
 また使われているというActivePerlの所在を直アドレスで知らせてもらえますか。いえただ探
しに行くのが面倒なだけで。。。。色々増えて探し回るのも結構手間がかかるように大きくなっ
ていたりして。ごめんなさい。
 ってそれをさっさとやっていれば何か判ったのかもしれませんけど。
 確かWin98+IE5でActivePerlでしたよね。ISAPIではない?

★おまけ
 もうご覧になっていると思いますけど。
 めちゃ簡単ですけどAN HTTP Serverを使ったローミングアクセスを電子掲示板でレポートさ
せて頂きました。


Dne dnemk@world.interq.or.jp 1999/11/02 23:56

なにもソフトをいれずにチェックしたいのですが、
今は忙しくてWin98SEをクリーンインストールできません。

今は通常使ってる2000戻しました。
不具合の出る環境のイメージはとってあるので何か実験してみましょうか?
手始めに
IE起動=>JavaScriptでブラウザ情報取得=>CGI環境変数で取得
NN起動=>JavaScriptでブラウザ情報取得=>CGI環境変数で取得
などなど
やってみます。


中田昭雄 nakata@st.rim.or.jp 1999/11/02 21:34

ぴゅあさん、
Dne さんのは今のところ再現できていません。(Win95, IE5.0, NC4.7)
HTTP_USER_AGENT を Cookie などでセットするかなんらかの形で保持しない限り無理なような気がしていますが、他の可能性をもうちょっと調べてみます。


ぴゅあ pure@GalaxyCorp.com 1999/11/02 10:20

>Dneさん
 遅くなってしまいました。気合いが。。。。(>_<)
 中田さんは何か見つけられているのでしょうか。
 確認はIEを立ち上げHTTP_USER_AGENTを参照,ネスケを立ち上げ参照,IEで再呼び出し,ネスケ
で再呼び出し、及びネスケ,IEの順で同様に行いました。
 この解釈で合っていますよね?
 AN HTTP Server v1.20,v1.20d,v1.21で確認してみましたが異常は確認できませんでした。
 異常が確認できなかったためAN HTTP Serverは各バージョンを1回立ち上げただけです。

 環境
 OS:Win98
 Perl:Perl for Win32 v3.16
 ブラウザ:IE4.01SP2,ネスケv4.7/en

 AN HTTP Serverが別のものということは当然あり得ないので違いと言えばPerlとIEだけです
よね。Perlの違い(AN HTTP Serverでの取り扱い)ということも考えられますがσ(^ー^)の個
人的な見解としては前に書いたようにIE5を入れるとネスケがおかしいという部分にあるような
気もやはりしていたり。

 一応再び中田さんの方の参考にもなればということで。


ぴゅあ pure@GalaxyCorp.com 1999/11/01 01:18

>Dneさん
 なるほど。
 Win98環境の問題でしょうか。。。。
 ただWin98+IE5の環境でネスケv4.5x以降はダメなんですよね。。。。
 v4.7なら大丈夫になったのかな?
 WinNT4.0S+HTTP−Win98+IE4.01SP2/ネスケv4.7で試していたのでWin98側のHTTPでも確認
してみますね。IE5.0ではないですけど。
 これで確認できればWin98が怪しいという気がしますけどWin98+IE5.0の方がもっと怪しい気
も。。。。
 あれ。そう言えば今日何処かでIE5.0の不具合を読んだような。。。。
 今まで使ってきてどうもσ(-_-;)としてはWin98があらゆる部分で怪し過ぎに見えて仕方ない
のですけど。。。。
 2'nd Ed.も近日中に環境ができる予定でありますが。

 12時(昼です(^ー^;))に寝るつもりがこの時間なので明日になるかもしれませんけど。
 なんて書いてるとログの無駄。。。。ですね。。。。


Dne dnemk@world.interq.or.jp 1999/11/01 00:44

忘れていました。
どちらの環境も「ActivePerl Build518」を使っています。


Dne dnemk@world.interq.or.jp 1999/11/01 00:42

えっとWin98SEがインストールしたあったCドライブのイメージを
バックアップしていましたので、書き戻してみました。

現在の環境
OS:Windows2000β3 + httpd1.20d
IE5.0(5.00.2516.1900)
NN4.6
不具合は発生しませんでした。

書き戻した環境
OS:Windows98SE + httpd1.19f
IE5.0(付属)
NN4.6
必ず不具合が発生します。

これはどういうことでしょうね?


ぴゅあ pure@GalaxyCorp.com 1999/10/31 06:55

>Dneさん
 投稿を読み直してみました。
 IE5とネスケだったんですね。
 投稿されたそのままの処理を実行したわけではないですがHTTP_USER_AGENTを記録するCGIを
作ってあったのでそれで確認していました。
 σ(^ー^)の方ではIE5は使えないのでIE4.01SP2とネスケv4.7/enでのチェックで再現できませ
んでした。
 あとPerlはPerl for Win 3.16ですので。
 もっと回数を重ねないと再現できないというものなのかもしれませんが必ず発生しているもの
であるなら一応参考までに。


Dne dnemk@world.interq.or.jp 1999/10/31 02:47

中田さん
その解釈であっています。
よろしくおねがいします。


中田昭雄 nakata@st.rim.or.jp 1999/10/29 21:18

Dne さん、
ちょっと誤解していました。 User-Agent: を渡す CGI なのではなくて 渡してしまう という話ですね。
IE5でそのCGIにアクセス後、NN4.6でアクセスすると HTTP_USER_AGENT が MSIEを含むものになっている、という解釈でいいですか?
そのCGIからすると確かに変ですので、確認してみます。


Dne dnemk@world.interq.or.jp 1999/10/29 01:22

中田さん、ぴゅあさんレスありがとうございます。

>ブラウザから受け取った HTTP_USER_AGENT を Cookie でセットするのでしょうか?
>(他にやり方が思いつきません。。。)
すいません、理解できません。

状況はは簡単なことで、掲示板などをCGIで作ってるとき
IEとNNではInputタグのサイズなどがかなり違うため
アクセスしてきたユーザのブラウザを判別してタグのサイズを調整しますよね。
そのためにUser_Agentを得ようとしてるのです。

if ($ENV{'HTTP_USER_AGENT'} =~ /MSIE/) {
$input_size = "30";
} else {
$input_size = "18";
}
その後
print <<HTML;
<input type="text" size="$input_size" name="name" value="$cookie_name">
          ~~~~~~~~~~~~~~~~~~

HTML

あとこの不具合?は7月ごろ気づいたのです。
(そのときここのBBSになぜか何回トライしても書き込めなかったので)
今はNT+IIS+ActivePerlの構成でテストしてたのですが、
毎回サービスを終了する時(シャットダウン)に
時間がかかるのがいやでhttpdに戻そうと・・・。
今度Win98SEをインストールしてまた再現してみます。


中田昭雄 nakata@st.rim.or.jp 1999/10/28 21:05

Dne さん、
ブラウザから受け取った HTTP_USER_AGENT を Cookie でセットするのでしょうか?
(他にやり方が思いつきません。。。)
いずれにしろちょっとわかりませんので、そのCGIの筋書きを教えてもらえますか(?)。


ぴゅあ pure@GalaxyCorp.com 1999/10/28 20:36

>Dneさん
 昨晩少し確認してみましたけど際限できませんでした。。。。
 キャッシュ?とか思ったのですけどプロクシ機能を生かさないとキャッシュは関係ないようで
すし(キャッシュに付いては確認していません)。
 尤もキャッシュにエージェントが保持される筈もないのでAN HTTP Serverの所為なのか?それ
ともPerl for Winなので(ISAPIではエージェントが得られない)のでActivePerlの問題なの
か?尤もエージェントはブラウザが提供するのではと思うのでそれも疑わしい(そうではない
だろう)という気がしますが。
 もしこの中に思い当たる点があれば調べてみては?


Dne dnemk@world.interq.or.jp 1999/10/28 00:58

昔からhttpdとActivePerlを使ってCGIの動作確認に使ってます。

つい最近CGIを書いているときに奇妙なことに出会いました。
それは、httpdを起動してから最初に起動したブラウザのUser_Agentを
その後起動した違うブラウザに返すというものです。
たとえば
httpd起動->IE5起動->NN4.6起動でNNにIEのUser_Agentが渡されます。
その状態で一度httpdを再起動すると直ります。
しかし、今度は最初に動かした方のブラウザのUser_Agentが渡されるのです。

なぜかhttpdのログファイルにはちゃんと返ってるのですが、
CGIに
print "$ENV{'HTTP_USER_AGENT'}";
と記述するとやはり違うブラウザの値(文字列)が返ってきます。

if ($ENV{'HTTP_USER_AGENT'} =~ /MSIE/)
と記述したのに、NNでアクセスしてもうまく分岐がされないので気づきました。


これはWin側問題?なのでしょうか?