AN HTTPD ゲストブック/コメント集(2002年9月28日15:28)


いと gfh05223@nifty.com 2002/09/29 01:06

中田さん
(ヘッダに Last-Modified がないと) JavaScriptの lastModified が
1970年1月1日 09:00:00 になるので対応して欲しいとお願いした人は私です。

ではアクセスした日時を設定しましょうとなって一件落着だったのですが、
*.htmlにチェックすると、SSIの有無に関わらずアクセス日時が設定されることに
不覚にも 4年間気が付いていませんでした。

ドキュメント中のSSIを探すのはサーバの役目であり、CGIを探すのはブラウザなので
カウンタの例は不適切でしたが、Webページの一部分がCGIで変わっても更新日は
変わらないので、SSIでページ内容が一部変わっても更新日時を変える必要は
必ずしもないのではないかと思いました。アクセス日時が返らないと困る例を
思いつかないので、SSIの有無に関わらずファイルの更新日時を返すでいいと思います。
お手数ですが、よろしくお願いします。

あと、テスト中に気がついたのですが、*.shtml にチェック有でもヘッダに
Last-Modified が出ていないようです。


中田昭雄 nakata@st.rim.or.jp 2002/09/28 21:32

いとさん、
そうです、JavaScript でSSIの場合にLastModifiedがセットされない、という人がいてそうしたものだったと思います。

CGIのカウンタはドキュメントとは別のアクセスになりますから Last-Modified はアクセス日時になっているはずです。それを含むドキュメントの Last-Modified はファイルの更新日時です。
SSIでは、全部処理した後のドキュメントを返すので、Last-Modifiedはアクセス日時になりますね。

目をつぶることに私自身は異論ありませんが、
*.html にチェックがある場合、SSIが実際にあってもファイルの更新日時を返す、ということでいいですか? 


いと gfh05223@nifty.com 2002/09/28 20:49

中田さん
例えば、ドキュメントルートの index.html の中に
<!--#flastmod file="./index.html"-->
と書くと、こればサーバ側で埋め込まれるのでファイルの更新日時になります。

一方、JavaScript の document.lastModified はヘッダの Last-Modified を見る(?)ので
アクセスした日時になります。Netscapeの最終更新日時もこちらですね。

CGIのカウンタがあっても更新日時は変わらないが、SSIのカウンタなら
アクセスした日時になるというのも感覚的には変ですし。

SSIでアクセスした日時を設定した方がいい場合もあるかもしれませんが、ここは
目をつぶって HTMLファイル自体の更新日時を戻すのではだめでしょうか?


中田昭雄 nakata@st.rim.or.jp 2002/09/28 17:13

いとさん、
SSIについては、そうですね。
SSIでもLast-Modifiedが欲しいということでつけたためだと思います。
それぞれファイルの最後までSSIの記述があるかどうか確認してからヘッダ(Last-Modified)を出さないといけなくなりますね。。。


いと gfh05223@nifty.com 2002/09/28 15:28

中田さん
SSIを許可するで *.html にチェックしていると、全てのページの最終更新日時が
アクセスした日時になってしまいますね。SSIが組み込まれていないページは
ファイルの更新日時になって欲しいところです。
#昔何かあったと思って探してみると、98年10月に私がお願いしたことが
#今に影響しているようにも?

IE で右クリック -> プロパティで見た作成日/更新日が、なぜかアクセスした日に
なるので意味ないという話もあるかもしれませんが。