[PHP-users 3065] Re: phpでのキャッシュの有効期限について

hasegawa php-users@php.gr.jp
Wed, 24 Oct 2001 11:41:25 +0900


長谷川です。
大垣さん、詳しく説明頂き感謝しております。
基本から理解する情報まで頂きありがとうございます。

> > ■現象説明  
> > 
> >   ラジオボタン、プルダウンメニューが入ったページを作成している
> >   がform画面のプルダウンなどの色々な値を変更させてリサイズ
> >   キャッシュの制御に<META>タグの設定は行なわず、ブラウザのデフ
> >   ォルト(セッション毎)で確認
> 
> 
> 私も、METAで色々設定するのはちょっと難ありと思います。本来のHTTP
> Headerで調整すべき事なので。(両方使ったりしていますが、、)

この使い分けはやってませんでした。
知識不足で、METAの調整で対応してました。
HTTP Headerを調整してみます。

> > 
> >  ●Netscape4.75の現象
> >      ・変更させた値が、全て初期の状態に戻る。
> >      ・「ページ情報の表示」の有効期限:11/19/81 17:52:00と過去
> >   ●InternetExplorer5.0では
> >      ・ 問題なく、選択状態のまま表示される。
> >      ・「ページ情報の表示」の有効期限:「日付けなし」
> > 
> >  上記は、PHPでHTMLを出力しないで、htmlファイルとして読みこんだ
> >  場合には、有効期限が「日付なし」になり、リサイズしても変更させた
> >  値を覚えている。
> 
> 
> PHP4 Sessionを利用している前提で返信します。
> session.cのソース(4.1.0RC CVS)ですが、以下の部分でヘッダーを生成し
> ています。public以外の場合は過去の日付のExpiresヘッダーを送信します。
> 
> # この手の問題はヘッダーも簡単にみれる、wget, curl等を利用
> # した方が簡単です。

wget -s http://hogehoge/test_main.php

でヘッダ状態を確認できました。
ヘッダの状態を色々試しながら確認してみたく思います。
 
> > 
> > ■質問事項
> > 
> >  ・PHPで作成したページをhtml形式のように有効期限「日付なし」にする事
> >   可能でしょうか?
> 
> 
> 「日付なし」にできないか?と言うことでしょうか? (NN 4.7のページ情報
> ですよね?) Expiresヘッダーを送らなければ、日付無しになると思います。

はい。NN 4.7のページ情報です。
試してみます。

> Expiresヘッダーの問題であれば、session_cache_limitter()を読んだ後
> に、Expiresヘッダーを送り直せば、新しいExpiresヘッダーのみ送ってく
> れます。
> 
> Expiresヘッダーを完全に消すためにはcache limitterに"none"等の無効
> な値をいれておくとヘッダーを送りません。cache limitterも使う場合
> は、session_cache_limitter()を読んだ後、各ヘッダーを上書きするとよ
> いです。
> 
> # sessionモジュールでヘッダーを送ったかどうか状態を管理
> # しているので、cache limtterが呼ばれてから、ヘッダーを
> # 変更しないと上書きされます。
> 
> RFC2616(とHTTP1.0等の古いRFCも)を読んでみてはどうでしょうか?

なるほど、わかりました。
RFCについても読んでみます。

> >  ・または、HTMLのようにリサイズしても変更した値を覚えているようにする
> >   事は可能でしょうか?
>  
> 
> JavaScriptでリロードした場合は普通の状態ではフォームのデータは消え
> てしまいます。リサイズしてフォームデータがリセットされるのはブラウ
> ザがリロードしているのでは無いか、と推測します。(古いNNにはリサイ
> ズ時の問題があったので、対 処策?)
> 
> 持ち回すことは可能です。データ量が少ないようであれば、Query String
> でデータを持ち回すとクライアントのみで完結します。サーバーに
> POST/GETでフォームのデータを送って、再表示と言う方法の方が無難かも
> しれません。

上記の確認後、検討します。
ありがとうございます。