新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: CGIでのヘッダ出力
Date: 1999/05/15 00:14:53
Reference: mesh.program/00654

5月13日に、三葉工房さんは書きました。

>失礼もうしああげて,申し訳ございませんが,
>Expires: Mon, 10 May 1999 16:08:27 GMT
>をどのように画像出力のヘッダ部に記述するか分かりません。

あー、CGIで独自のヘッダを生成したり、サーヴァが付けるはずのヘッダを変更したり
する場合は、Content-type: 等と同じ所、つまり、コンテンツ自体を出力する前に
入れます。

例えば現在時刻を Expires: にセットしたいなら、

@wday = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
@mon = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime;
$ctime = sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",
 $wday[$wday], $mday, $mon[$mon], $year + 1900, $hour, $min, $sec);
print "Content-Type: image/gif\r\nExpires: $ctime\r\n\r\n";
 
などとしてから画像を出力すれば良いですね。
# Expires: は必ず GMT なのに注意。

>(ちなみに私は,"Monday"と言う様に週の欄は,フル書きで記述して,月の欄は,
>上記の書き方と全く同様に英語の月名を3文字に省略して,書いています。)

HTTP手順で用いられる日時の書き方に関してはチョット前に「うぇぶ会議室の部屋3」の
2000年問題に関する記事でふれたのでそちらを参照して下さい。