[ここ「ラボ」ができる前(2000年頃)、メモ代わりに運用していた「電気仕掛けの箱庭」の記事を移転・一部現在にあわせて改変。]
ちょっとしたことを行うだけなら、CGIを使わなくても、このSSIという仕組みを使って出来ることがあります。SSIとはServer Side Includeの略で、HTML文に直接挿入して、他のHTMLファイル、ファイル情報、 現在の時刻などを表示させます。言葉通り、サーバーサイド(側)で実行され、その結果をHTMLに含んで(include)してブラウザに返すため、通常ユーザーはブラウザの‘ソースを見る’などで、HTML文を見てもSSIが含まれているかどうかはわかりません。
SSIには、いくつかの決まった機能が提供されていて、それを使うが簡単ですが、CGIの実行命令文を組み込んで、CGIプログラムを実行させることによって、 ページに変化を与える事ができます。アクセスする毎に変化する画像やセリフ、カウンタプログラムなど、ページの一部の表示が変わるものは SSIを使用していることがよくあります。
SSIの働く際の動きは以下の通りです。
(U)ユーザー、(B)ブラウザソフト、(S)WWWサーバー
(U)ホームページにアクセスする
(B)ブラウザがサーバーにアクセス要求を送る
例:コンサ応援ページの『WhatsNew』ページ
https://www.consadeconsa.com/index.shtmlというファイルの場合(注:このファイルは実在しません)
↓
(S)サーバーがアクセス要求を受信する
www.consadeconsa.comというサーバーは、index.shtmlという名のファイルを探す
↓
(S)サーバーがファイルの判断をする index.shtmlの拡張子を調べ、このファイルをどうするか判断する
この場合は.shtmlなので、ファイルの内容をSSIを含んだHTML文と解釈して、その結果をブラウザに返すと判断する)
↓
(S)サーバーがファイルを読み、文中のSSIを実行
サーバーはHTML文を上から読んでいきますが、文中にSSIの命令文が入っていれば、それを実行します。
↓
(S)サーバーからブラウザへ実行結果を送信
サーバーはHTML文を実行したSSIの結果を挿入したHTML文をブラウザに送る
↓
(B)ブラウザがサーバーからのデータを受取る
↓
(B)ブラウザは受け取ったデータを解釈し、表示する
(U)ページが見れる
shtmlという拡張子は、SSIを含んだHTMLファイルという意味の拡張子ですが、SSIを含んだ文のみこの拡張子に変更すると、他のページからのリンクなどが煩わしくなるので、私はこの拡張子は使用していません。かわりにサーバーの設定を変えて、htmlの拡張子のファイルにはSSIが入っているという風に解釈するようにさせてます。
CGIと同じで、ホームページを載せているサーバーによっては、SSIの使用を禁止していることもあり、使用する際は、利用が可能かどうか確認する必要があります。具体的なSSIの設定はTIPSの方で。