>中田さん
ありがとうございます。
正常動作することを確認しました。
Kusa さん、
なるほど、PerlIS.dll では再現できました。
調べてみたところ、PerlIS.dllの実装方法に文句がないわけではありませんが、そう言っていてもはじまらないので AN HTTPD の方を直しました。 1.42b で試してみてください。
>中田さん
どうやら「image/gif」の指定に関係なく、Perlの実行に「PerlIS.dll」を使用し、な
おかつCGI::headerで-type、-status以外のパラメータを渡すと発生するようです。
printでヘッダを出力するか、通常の「perl.exe」(とCGI::header)だと正常に実行でき
ました。
反応がなくなる際の挙動ですが、「ISAPIドライバをロードしました」の状態で反応が
返ってこなくなり、強制終了するしかなくなってしまいます。
使用環境はWinXP SP1、An httpd 1.42、ActivePerl 5.6.1.633です。
Kusa さん、
「反応がなくなる」というのはどうなるのでしょうか?
CGI::header() を使ってみて、(WinXP + AN HTTPD 1.42 で)とりあえず正常に動作しました。
image/gif でも普通のことだと思います。
header() を使わずに "Cache-control: no-cache" などを出力するとどうなるでしょうか?
また、AN HTTPD のオプションの「表示/インデックス」の「Pragma: no-cache」にチェックがはいっている場合は、AN HTTPD が Pragma: no-cache だけでなく Expires: -1, Cache-Control: no-cache を出すはずです。
cgiの作成にいつもan httpdを利用させてもらっています。
現在可変な画像を出力するcgiを書いているのですが、ブラウザの動作によっては常に
再読み込みをしないようですので、明示化するためヘッダ内にキャッシュしない設定
を入れました。その場合、1〜2回の読み込みでhttpdの反応がなくなってしまいます。
使用しているのはPerlのCGI::Headerで、以下の通りです。
print header(-status=>'200 OK',
-expires=>'-1d',
-type=>'image/gif',
-cache_control=>'no-cache, must-revalidate',
-pragma=>'no-cache');
以上の中で「-status」「-type」以外の1つでも有効にすると、反応がなくなってしま
うようです。「image/gif」の出力にこういったヘッダを付加するのは標準的ではない
のでしょうか。