SSI (Server Side Include)

CGI入門では、主に CGIプログラミング環境とその仕組み、および制御構文などについて説明しています。
この章では、特定のプログラムなどを使うことなく、動的な Webページを作成することができる SSIについて解説しています。
そのためには、サーバー側インクルード(Server Side Include = SSI)コマンドを使うことになりますので、少なくともそのコマンドを知らなければなりません。
SSIとは
SSIとは、サーバ側であらかじめ組み込まれたコマンドを利用する仕組みのことです。そのため、SSIでは動的で有用な作業を実行するのにプログラムのようなコーディングを作成する必要はなく、何種類かの SSIコマンドを使うだけでよいのです。
SSIコマンドというのは、サーバ側が HTMLファイルを解析しながら実行します。HTMLコードに埋め込まれた特別なコマンド(命令)です。
SSIは、一群の異なったファイルに共通の内容を含めたい、という要求に応えて開発されました。この取り込み(Include)機能は、シグニチャ(署名)ファイルや会社のロゴファイルなど、すべてのファイルに付加したファイルを取り込むのに使うのが一番多い使い道です。
取り込みファイルはサーバ上に置かれ、includeコマンドが含まれている HTMLファイルが要求されるたびに、その中に取り込まれます。サーバ側インクルードと呼ばれるのは、そうした仕組みのためなのです。
SSI利用のデメリット
「両刀の剣」という言葉があるとおり、大変素晴らしいことができると同時に、それなりの負荷があることは SSIも同じことです。
サーバは、SSIを処理するために余分な仕事をたくさんこなさなくてはなりません。サーバが通常の HTMLを返すときは、適切な応答ヘッダを生成した後、HTMLをそのままユーザに送り返します。厄介な問題ではありませんし、手間もほとんどかかりません。
サーバが CGIプログラムを実行するときは、CPUが直接またはインタプリタを通じてプログラムを実行します。CGIプログラムは、何らかの HTTP応答ヘッダを生成し、それから HTMLファイルを生成するはずです。
サーバの作業は、もし要求があれば追加の HTTP応答ヘッダを生成し、CGIで生成された HTMLファイルをユーザエージェント (Webブラウザ) に渡すことだけです。
しかし、サーバが SSIコマンドを含むファイルを返す場合には、サーバはそのファイルの各行を読んで SSIコマンドの文法に従う個所を見つけなければなりません。この作業を「ファイル解析」と呼びます。
HTMLファイルの任意の場所に SSIコマンドを書くことが可能なので、サーバは HTMLファイル中の SSIコマンドを見つけるための特別の労力を重ねなければなりません。
ファイル解析はサーバに余計な負担をかけます。同時に、SSIコマンドを含んだファイルは、通常の HTMLファイルに比べ処理時間がかかるため、ユーザエージェントに返されるのが遅いという欠点もあります。
より多くの SSIコマンドを処理しなければならない場合、サーバはさらに多くの負担がかかり、結果としてサーバの動作は遅くなります。
だからといって、SSIを使うなというわけではありません。ただ、SSIを使うことの損失を理解しておく必要があるのです。その上で、初めて SSIに取り組んでください。
SSIはどのように動くのか
サーバが SSIコマンドを含んだファイルをどのようにして判断するのでしょうか?
通常の HTMLファイルの拡張子は「.html」です。それに対し、 SSIコマンドを含んだ HTMLファイルの識別子は.shtmlとしなければなりません。
この識別子の区別によって、サーバ側でそのファイルを解析し、SSIファイルとして処理を実行します。ファイル名による制御は、srm.confファイル中で、AddType命令を使って設定できます。具体的な内容については、次節より解説します。
(なお、Windowsでは、識別子を 「拡張子」 と呼びます。)
ただし、サーバ側で SSIが使える環境でなければなりません。サーバの管理者は CGIが負担が大きすぎると判断した場合、SSIを使わせないようにすることができます。それが第一の関門でしょう。あなたのプロバイダの管理者に直接尋ねて、SSIが利用できるかを確認しなければなりません。
次節は、実際の SSIを利用するための設定について詳しく解説します。


This Page is HTML4.01 Valid! 最新更新日 2003年11月9日   最新更新日 2004年4月8日
Copyright(C) 2002〜2004 banban@scollabo.com