Server Side Includes (SSI)とは
Server Side Includes(SSI)は、
Webサーバが持つ機能の一つで、HTMLファイルの中に
Webサーバ側で実行するコマンドを埋め込むことができる技術です。これにより、Webページを動的に生成し、クライアントに返すことが可能になります。
具体的には、HTMLファイルの中に特定の書式で記述されたコマンドが埋め込まれており、
Webサーバがそのファイルをクライアントに送信する前に、これらのコマンドを実行します。実行結果は元のHTMLファイルに組み込まれ、最終的にクライアントのブラウザに表示されます。
しかし、SSIを利用するには
Webサーバ自体がSSIに対応しているか、または設定によって利用可能になっている必要があります。例えば、
Apache HTTP Serverでは、SSIを有効にするためには、SSIを含んだHTMLファイルの拡張子を `.shtml` に変更するか、または実行権限を与える(XBitHackを使用する)などの方法で、
WebサーバにSSIを識別させる必要があります。
SSIで利用可能なコマンド
SSIでは、以下のような様々なコマンドを利用することができます。
config: 時刻、サイズ、エラーメッセージの表示形式を設定します。これにより、Webページに表示される情報を見やすくカスタマイズすることができます。
echo: SSI変数の値をWebページに差し込みます。これにより、サーバ側の環境変数や設定情報を動的に表示することができます。
exec: システムコマンドやCGIプログラムを実行し、その結果をWebページに差し込みます。これにより、外部プログラムと連携した動的なコンテンツを生成できます。
fsize: 指定したファイルのサイズをWebページに差し込みます。これにより、ダウンロードファイルの情報などを動的に表示することができます。
flastmod: 指定したファイルの最終更新日時をWebページに差し込みます。これにより、コンテンツの更新情報を動的に表示することができます。
include: 同じ
Webサーバ上にある別のファイルの内容を取得し、Webページに差し込みます。このコマンドは、ヘッダーやフッターなど、複数のページで共有するコンテンツを管理するのに非常に便利です。クライアント側では、既にコンテンツが取り込まれた状態になっているため、ブラウザのソース表示を見ても `include` 指定と差し替わっているため、区別することはできません。
SSIの活用例
SSIは、Webサイトの構築や運営において、様々な場面で活用されています。例えば、以下のようなケースで利用されます。
共通パーツの管理: ヘッダーやフッターなど、複数のページで共有するコンテンツを `include` コマンドで管理することで、サイト全体のデザインや情報を一括で更新することができます。
動的な情報の表示: アクセス日時やファイルサイズなど、動的な情報を `echo` コマンドで表示することができます。
外部プログラムとの連携: `exec` コマンドを使用することで、CGIプログラムやシステムコマンドを実行し、その結果をWebページに表示することができます。これにより、より高度なWebアプリケーションを構築することが可能になります。
注意点
SSIを利用する際には、以下の点に注意が必要です。
セキュリティ: `exec` コマンドなどを使用して、外部コマンドを実行する場合は、セキュリティ上のリスクに注意が必要です。入力内容の検証や、権限設定を適切に行う必要があります。
パフォーマンス: SSIは
Webサーバ側で実行されるため、処理が重いコマンドを使用すると、Webサイトの表示速度が低下する可能性があります。パフォーマンスに配慮した設計が必要です。
設定: SSIを利用するには、
Webサーバの設定が必要です。設定内容によっては、SSIが正常に動作しない場合があるため、設定内容をよく確認する必要があります。
関連項目
Webサーバ
XUL
lighttpd
外部リンク
Apache チュートリアル: Server Side Includes 入門
*
とほほのSSI入門