基本的に
といった手順で更新時刻を取得している。
該当 URI に HEAD request を出し、レスポンスに Last-Modified: があればそれを利用する。
Web server に対して負荷が軽いので、これだけで取得に成功するのが望ましい。
サーバが Apache ならば .htaccess に
XBitHack full
と書いて、対象のファイルに group execute permission をつけておくと、SSI が実行できるように なっていても HEAD で Last-Modified: が出るようになる。ぶっちゃけた話、
% chmod +x foo.html
でおっけー。詳しく知りたい人は Apache のマニュアルを見よ。
HEAD request で更新時刻を取ることができない URI は、たいてい SSI(Server Side Include) が有効になっている場合が多い。その場合、該当 URI に GET request を出し、以下のような書式が 記述されている行から更新時刻を取得する。
<head></head> 内に
<meta http-equiv="Last-Modified" content="GMT での更新時刻">
と記述された行から更新時刻を取得する。具体的には
<head>
<meta http-equiv="Last-Modified" content="Sunday, 18 Aug 1996 12:34:56 GMT">
<title>ほげほげ</title>
</head>
のようになる。「GMT での更新時刻」と書いてもダメです :-(
この形式で記述しておくと、WWWC で チェックタブの下にある「META タグを使ったチェックを行う」をチェックして
タイプ: http-equiv タイプ名: Last-Modified コンテンツ: content
と設定すれば更新時刻がチェックできるようになるのでオススメ。
<body> 以降に(直後が望ましい)
Last-Modified: <!--#flastmod file="ファイル名"-->
もしくは
Last-Modified: <!--#echo var="LAST_MODIFIED"-->
と書いておくと SSI により更新時刻に展開されるので、その行から更新時刻を取得する。 コメント(<!-- -->)にされていても、そこから取得する。
一行に収まる範囲で「年(4 桁が望ましい)・月・日・時・分」の組み合わせで更新時刻が記述されている 行から取得する。対応しているフォーマットは以下のとおり。
たとえば
- 1996/08/18 21:34
- 18-Aug-1996 21:34
などと書いてあると、これをそのまま利用する。