ユーザーのブラウザーから要求がある度にCGIを動かしていたらサーバーの生産性が低いです。特にカミュプリィの『西暦・年齢・和暦・干支対照表』CGIは1年に1回更新すればよい表ですので、要求の度にCGIを動かしていたら、、、うん、無駄よね。
CGIの対応
CGIですので実行結果は標準出力へHTMLの内容を出します。また、HTMLの内容をそのままキャッシュファイルにも書き出します。こうしてCGIを動かす度にキャッシュファイルが更新されるようにしました。
HTTPサーバーの対応
CGIを置いたディレクトリに「.htaccess」設定ファイルを作成します。URLの指定がディレクトリ止まりであれば、キュッシュファイルを優先して開くようにしました。
次の例では「まるまる.html」キュッシュファイルが優先で、Pythonで書いた「まるまる.cgi」CGIが劣後になりましす。
DirectoryIndex まるまる.html まるまる.cgi
これで、普段はCGIを置いたディレクトリを呼び出すと、「まるまる.html」キャッシュファイルがクライアントに渡されます。
キャッシュファイルがないときは「まるまる.cgi」CGIが呼び出されます。キャッシュファイルがないのは最初だけなので、ディレクトリを呼び出してCGIを実行するのは最初の1回だけですね、この設定は不要かもしれません。
OSの対応
タイマーで定期的にプログラムを開始できるクーロン(cron)で、毎年1月1日に「まるまる.cgi」CGIを呼び出します。
管理者の対応
年号が変わったときは、年号ファイルの設定を変更してから、CGIのファイル名を含めたURL「https://www.commuply.co.jp/tools/wareki/まるまる.cgi」をブラウザーから呼び出します。
CGIのプログラム内容を変更したときもCGIのファイル名を含めたURLをブラウザーから呼びます。