AN HTTPD ゲストブック/コメント集(2000年2月14日18:17)


中田昭雄 nakata@st.rim.or.jp 2000/02/16 21:18

冨田さん、
なるほど。どうもありがとうございます。

なお、AN HTTPD のプロクシのキャッシュはまだHTTP/1.0で、かつ、いい加減で、通常キャッシュすべきでないものまでキャッシュしています。


冨田 ytomi@hi-ho.ne.jp 2000/02/15 22:09

やまさん wrote (2000/02/14 18:17)
>ブラウザ、プロキシでキャッシュしないようにしたいのですが・・・。

表示を最新にリフレッシュしたいと言う意味なら、私も悩んだことがあります。

中田さん wrote (2000/02/14 21:39)
>IE側の インターネット一時ファイル の 新しいバージョンの確認
> の設定によっては、どうあがいてもキャッシュするのではないでしょうか?

ということの様です。

RFCを読んで、Pragma: no-cache や Expires: はプロトコル上のキャッシュ
コントロールであって、ブラウザの動作を保証するものではないことが分かり、
ブラウザに期待することはあきらめました。

以下、私が無い知恵を絞って考えた手です。

(1) HTTP ヘッダの refresh を使う
 <META HTTP-EQUIV="refresh" CONTENT="0.1;URL=hoge.pl?xxxx=yyyy">
 という様なヘッダを持つダミーページを呼び出してリフレッシュする。
 とりあえず、私の環境では使えているみたいです。

(2) GET パラメータに毎回ユニークな値を入れる(時間などから生成)
 <A href="hoge.pl?xxxx=yyyy&TIME=951829411">
 の様に、ユニークなダミー値を入れる。私の環境でOKでした。

(3) JavaScript を使ってリロードする。(未確認)

(4) POST Method ならば必ずリフレッシュされるのでは?(未確認)

(5) Cookie 送りつければ、ひょっとして毎回リフレッシュしてくれるかも?

確実なのは(2)だと思いますが、使えない場面もありそうな...


おまけ RFC2068 (13.2.1 Server-Specified Expiration) 抜粋
An expiration time cannot be used to force a user agent to refresh its display or reload a resource; its semantics apply only to caching mechanisms, and such mechanisms need only check a resource's expiration status when a new request for that resource is initiated. See section 13.13 for explanation of the difference between caches and history mechanisms.


中田昭雄 nakata@st.rim.or.jp 2000/02/14 21:39

やまさん、
これは私は知りません。
IE側の インターネット一時ファイル の 新しいバージョンの確認 の設定によっては、どうあがいてもキャッシュするのではないでしょうか?


やま yama@hi-ho.ne.jp 2000/02/14 18:17

はじめまして。
ブラウザ、プロキシでキャッシュしないようにしたいのですが・・・。
ネスケだとHTMLタグの外に

<%
response.setHeader("Pragma","No-cache");
response.setDateHeader("Expires",0);
response.setHeader("Cache-Control","no-cache");
%>

とすればキャッシュされないようなのですが、IE5だと、
キャッシュされてしまうようなのです。。。

METAタグに
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="Thu, 30 Oct 1975 21:42:25 GMT">
(Expiresは適当に過去を入れました)
でもキャッシュされてしまいます。。

誰かご存知の方はいらっしゃらないでしょうか???