福田さん、いとさん、
Keep-Alive のタイムアウトは短縮しても問題はないはずですが、Keep-Alive の時間中のアクセスでそうなっていまうのはバグですから、確認して直します。
ご教示ありがとうございます。
> どうも Keep-Alive が関係しているみたいです
ああ、それは疑いませんでした。申し訳ないです。
タイムアウトを短縮することについては、問題がないかどうか考えてから対応を決めたいと思います。
ありがとうございました。
福田さん
確かに再現性がありますね。
どうも Keep-Alive が関係しているみたいです。
一度アクセスした後、15秒間を置いてアクセスすれば大丈夫ではないですか。
また、オプション/一般の「接続持続 タイムアウト」を 15 -> 1 秒に変更すれば
どんなに素早く操作しても 1秒以内に連続アクセスするのは無理でしょうから
再現しなくなると思いますが。
ブラウザはIE6sp1です。ためしに、http://localhost:10080/tmp/ の要求を出して、trace logをとってみました。
<<< s=564: Wed Nov 19 22:08:14 2003 <<<
GET /tmp HTTP/1.1
中略
Host: localhost:10080
てな要求に対して、時には、
>>> s=564: Wed Nov 19 22:08:14 2003 >>>
HTTP/1.1 302 Found
MIME-Version: 1.0
Server: AnWeb/1.42h
Date: Wed, 19 Nov 2003 13:08:14 GMT
Location: http://localhost:10080/tmp/
Content-Type: text/html
Content-Length: 312
後略
と正しくお返事(a)してもらえますが、また、あるときには、
>>> s=564: Wed Nov 19 22:08:24 2003 >>>
HTTP/1.1 302 Found
MIME-Version: 1.0
Server: AnWeb/1.42h
Date: Wed, 19 Nov 2003 13:08:24 GMT
Location: http://localhost/tmp/
Content-Type: text/html
Content-Length: 312
後略
とおかしなお返事(b)をされてしまいます(Locationフィールド参照)。つまり、時に拠って異なるのです。今のところ、少なくとも初回は(a)のように行くのですが、ブラウザ上の「アドレス」の末尾を1文字("/")削って[Enter]を押すと、時には(b)のようなお返事になってしまいます。なお、上で、"〜/tmp" はエイリアスで指定したフォルダです。エイリアスのタブにおいて、仮想パスに"/tmp"、ローカルパスに"c:tmp"を指定しています。
福田さん、
普通のブラウザでリクエストヘッダに Host: domain_name:10080 を含んでいれば http://domain_name:10080/path_name/ になるはずですが。。。
「補完」の動作は、302 応答で、Location: http://domain_name:10080/path/ を返すだけです。ですから、トレースログを見れば正常に動作しているかどうかわかると思います。
お久しぶりでございます。お世話になっております。
さて、httpのポート番号を80以外(以下では10080としておきます)に変更して利用している時の問題です。
http://domain_name:10080/path_name/ でアクセスされるべきところを、クライアントからhttp://domain_name:10080/path_name 要求して、最後の"/"を省略した場合、AnHttpdが補完を試みてくれる(のですよね??)ようなのですが、その補完結果が、期待しているhttp://domain_name:10080/path_name/ ではなく、http://domain_name/path_name/ となるような気がします。そもそもこの補完はサーバ側行っていると思っていたのですが、違っていたらごめんなさい。補完をするべきかどうか、という点を含めて、自分にはこれに関わる諸仕様の適切性を判断する知識がないのですが、とりあえず、上記の症状をご報告しておきます。