新規記事投稿 フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: IE5ではどう? (Re: 再読込時にカウントアップしない設定)
Date: 2000/06/13 11:25:08
Reference: mesh.npc.2/00822

6月13日に、にあさんは書きました。

>6月12日に、HIROSHIさんは書きました。
>
>>それでは、IE5.0以外のブラウザーでカウントアップさせない方法
>>は無いのでしょうか?
>
>いやいや、今まで、
>>6月6日に、TADさんは書きました。
>>>NetscapeCommunicatorで再読込した場合、カウントアップしないというのは
>>>既知の情報でした。
>と言うことで、元々Communicatorは同じ方法でカウントアップさせないことが出来たのです。
>今回はそれに加えてIE5.0もカウントアップさせなく出来るようになった、と言う報告です。(^^)

フォローありがとうございますです。(#^_^#)

そういう意味で書いたつもりでしたが、少し説明を省いてるところもあるので正確に伝わらなかったようですみません。

それともこの方法でカウントアップしてしまうブラウザ(IE4,3)でもカウントアップさせない方法はないか、
ということでしょうか。

そういうことでしたら、ブラウザが「今回のアクセス(リクエスト)は再読込だよ」と教えてくれないからには、
CGI側で再読込かどうかを判断する必要があります。例えば、

1.直前のアクセスと同じ'REMOTE_ADDR','HTTP_USER_AGENT'だったら同じ人からの再読込と判断する。
2.直前の10アクセス分の'REMOTE_ADDR','HTTP_USER_AGENT'を保存しておいて、今回のアクセスが
  その中の条件と一致していたら再読込と判断する。
3.上記に加えて、30分以内に同じ条件のアクセスがあったら再読込と判断する。

など。
ですが、ちょっと考えればどれも完全な再読込チェックにはならないことがわかります。
ので、どこまでのチェックをするかはポリシーの問題になるでしょう。

で、どうやって実現するかですが、
カウンタCGIの中にその判断処理を組み込むか
カウンタCGIの前にそのような判断をするCGI(CGI Wrapper)をかませるか
等が考えられます。

npc.cgiの場合は、前者の方法は難しい(Cプログラムを修正し、コンパイルが必要)ので
後者の方法になると思います。
で、うれしいことには、そのようなCGI Wrapper(ラッパー)を作った方が以前いたと思います。
使いたいのであれば、過去記事を漁って見てください。

#具体的な説明は省略しましたが、手がかりになれば幸いです。


で、もうひとつIE5のバージョン問題。

>...が、いま手元のWin2K上のIE5(5.00.2920.0000)で試したらカウントアップ
>してしまった(= no-cacheが付いてない)のですが (^^; TADさんが試したのは
>どのヴァージョンでしたか?

Win98SEについてたIE5(5.00.2614.3500)です。
念のため、再確認してみましたが再読込時にはちゃんと付いてました。(見間違いじゃなくてよかった。(^^;; )

  HTTP_PRAGMA     no-cache 
  HTTP_USER_AGENT Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) 

IE5からはちゃんと付くようになったんだ、と勝手に思いこんでしまったために
バージョンを書くのを忘れてましたね。(^^;;
ということで、周りにあったIE5で確認してみたところ以下の2つのバージョンでもOKでした。
  5.00.2314.1003
  5.00.2219.6307
#古いのしかないですね。(#^_^#)

新しいバージョンでは no-cache が付かなくなっているのでしょうか。
IE5の初期バージョンは気まぐれだったのでしょうか。

新しめのIE5をお使いの方へ、よろしかったら下のリンクで環境変数の確認ができますので
再読込してHTTP_PRAGMAが付くかどうかをチェックして見ていただけませんか。

  TADのページにある環境変数表示CGI