Expiresでのキャッシュ防止について
[上に]
[前に]
[次に]
No.02
1999/06/25(金) 19:35:33
はじめまして。
キャッシュのことで質問があります。
常に最新のページが表示されるようにしたいので、
キャッシュされるのを防ぎたいのですが、
perlで以下のような出力をしても、キャッシュされてしまいます。
print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n";
print "Content-Type:text/html\n\n";
print "<HTML>";
・・・
何かおかしいところがあれば、指摘してください。
因みにno-cacheはIEでは動作しないので使いたくありません。
よろしくお願いします。
s
1999/06/25(金) 23:34:11
print "Pragma: no-cache\n"; ← HTTP 1.0
print "Cache-Control: no-cache\n"; ← HTTP 1.1
だそうです。
私は念のため両方出力してますが、問題有るのかなぁ?
>因みにno-cacheはIEでは動作しないので
へー、これは知りませんでした。
3/4/5のバージョンでもそうなのでしょうか?
きむ
1999/06/28(月) 14:22:25
回答ありがとうございます。
>print "Cache-Control: no-cache\n"; ← HTTP 1.1
こんな方法もあるんですね。今度試してみます。
>>因みにno-cacheはIEでは動作しないので
>へー、これは知りませんでした。
少なくとも、私の試した環境(Win95/IE3.01、Win98/IE4.0or5.0)では
Pragma:no-cacheは無効でした。
本題に戻ります。
質問がまわりくどかったようですね。単刀直入にいうと、
「Expiresを使ってキャッシュを無効にするにはどう記述したらいいのか」
が知りたかったのですが・・・。
出来れば、IEでもNNでも機能するような記述でお願いします。
きむ
1999/06/28(月) 15:31:51
申し訳ありません。
別のところで使っているペンネームで質問してしまいました。
最初の「No.02」は「きむ」と同一です。
名前を偽ったとか言う意図はまったくありません。
hiro-kim
1999/06/28(月) 17:53:06
print "Cache-Control: no-cache\n"; ← HTTP 1.1
のことはまったく記載されていませんが,
『日経オープンシステム 1999年4月号』を繰ってみたら,IEで no-cacheが有効になったのは次の一例だけだったと書いてありました。
IE4.x と <meta http-equiv="Pragma" content="no-cache"> の組合せ
(HTTPヘッダの "Pragma: no-cache" はダメ)
で,IEはキャッシュには入ってしまうので,キャッシュ内の古いページを表示しないという対処を採るしかない。
<meta http-equiv="expires" content="Sun, 10 Jan 1990 01:01:01 GMT">
(記事中には HTTPヘッダの "Expires:" だとは書いてないです,念のため)
の過去日指定で対処すれば IEでも Netscapeでも効果がある,と書いてあります。
私自身は確認したわけではありません,参考までに。
s
1999/06/29(火) 22:41:52
本題とはそれてしまうのですが、
キャッシュしない=再表示しない
ならばキャッシュエリアには、データが残っている可能性あり。
キャッシュしない=キャッシュエリアに保存しない
ならばローカルにはデータが残らないという事になりますが、
この違いはかなり大きいです。
つまりローカル内にデータが残ると、セキュリティー関連の問題があります。
これは結構深い問題だなぁ。
自分で検証すればいいのですが、既に実験した方おられますでしょうか?
きむ
1999/07/01(木) 09:38:23
[[解決]]
hiro-kimさんのご指摘どおり、METAタグを使用したらうまくいきました。
METAタグでExpiresを指定するのと、HTTPヘッダにExpiresを
出力するのとでは挙動が違うのでしょうか・・・。
教えていただき、ありがとうございました。
ところで、
>ローカル内にデータが残ると、セキュリティー関連の問題があります。
ってありますけど、どのような問題が発生するのでしょう?
差し支えなければ教えてください。
[上に]
[前に]
[次に]