Apache上で処理を行い,結果をHTML内に埋め込む「SSI」について説明します。Fedora 8ではSSIを利用するためのモジュールが最初から組み込まれています。
Webコンテンツには,静的コンテンツと動的コンテンツがあります。静的コンテンツとは,HTMLファイルや画像などです。HTMLファイルの内容そのものを変更しない限り,表示内容は変化しません。
このほか,ユーザーの要求やデータの状況によってコンテンツの内容に変化を加えることもあります。例えば,掲示板やグループウエア,検索サイトなどです。このようにブラウザに送られるデータ内容が変化するコンテンツのことを,動的コンテンツと呼びます。
動的コンテンツの提供方法はいくつかありますが,中でも簡単に利用できるのが「SSI(Server Side Includes)」です。ここではSSIを利用するための設定方法と具体的な使い方を説明します。
実行結果をHTMLに埋め込む
SSIでは,HTMLファイル内にある命令をWebサーバー上で実行し,その結果をHTMLに埋め込んでクライアントに送信します。サーバー側で処理を行い(Server Side),結果を埋め込む(Include)ことから「Server Side Include」と呼ばれます。
写真1●SSIを利用したコンテンツの例 更新日,訪問カウンタ,「Linux使っていますね!」というメッセージ,コピーライトは,SSIを利用して動的に作成している。 |
動的コンテンツを扱う技術には,SSIのほかにも,CGI(Common Gateway Interface)やAjax(Asynchronous JavaScript + XML)などがあります。SSIはHTML内に記載されている命令を実行するのに対し,CGIではスクリプト・ファイルの実行結果をユーザーに返します。Ajaxの場合はHTMLファイル内に記載されたJavaスクリプトをWebブラウザが実行し,JavaスクリプトのHTTP通信機能を利用してサーバーと通信を行い,動的コンテンツを提供します。
SSIを利用すると,HTMLファイル内に別のHTML文書を加える,コマンドやスクリプトを実行して結果をHTMLに埋め込む,ファイルの更新日などの情報を表示する,といったことが可能です(写真1)。例えば,コピーライトや広告といった定型の文書のHTMLを別途用意しておけば,SSIを使ってサイト上の全ページに張り込めます。定型文に変更があった場合でも,1つのHTMLファイルを変更すればすべてのページに適応できます。ちなみに一昔前は,アクセス・カウンタを配置するときなどにSSIがよく使われていました。
SSIがどのように動作するかを説明しましょう。SSIは図1のように,Webサーバー上で処理されます。クライアントからリクエストがあると,WebサーバーはHTMLファイル内をチェックし,SSIの命令文を探します。SSIの命令文は,
|
のように記述されています。エレメントは命令,属性はエレメントで利用する各種の値を指定します。最後の属性の後と「-->」の間にはスペースを入れておきます。
図1●SSIの動作 WebサーバーはHTMLファイル内にSSI命令を見つけると,処理を行い,結果をHTMLに埋め込む。 |
Webサーバーは,この命令文を見つけると,すぐに実行します。そして実行結果をHTML文書に反映します。具体的には,SSIの命令文の代わりに,実行結果を埋め込みます。最後に,できあがったHTML文書をクライアントに送信します。
SSIの機能は,Apacheの「mod_include」モジュールが提供します。そのため,SSIを利用するには,このモジュールをApacheに読み込む必要があります。しかし,Fedora 8の場合,Apacheをインストールすると同時にこのモジュールも導入されるため,特別なインストール作業は必要ありません。