next up previous index
Next: 17. アクセス制限 Up: 16. フォーム Previous: 16.5 ファイルアップロード


16.6 サーバーサイドインクルード

サーバーサイドインクルード(SSI)は、NCSAのWebサーバーがサポートしていた機能で、Apacheなどにも継承されています。

SSIを使うと、ブラウザに送る前にサーバー側でHTMLファイル内に動的にコンテンツを埋め込むことができます。たとえば、ページ内にアクセスカウンターを付けたり、時間や参照元などの情報を挿入したりすることができます。

タグはコメントタグ!(4.8 参照)を使います。

![Strict][Transitional]
<!--#command attributes...-->の形で、SSIを実行します。verb+-+#commandの間に空白文字は入れません。commandには次のようなものを入れることができます。
config
configコマンドは、同じページ内のほかのSSIコマンドの設定を行います。attributesには、次のようなものを取ります。
errmsg
errmsg="text"で、エラーが発生したときにブラウザに表示するメッセージを定義します。
timefmt
timefmt="format"で、年月日時の表示フォーマットを定義します。このフォーマットの記述方式は、UNIXのstrftime関数と同じです。
sizefmt
sizefmt="format"で、ファイルサイズを表示するときの単位を指定します。formatには次のような値が入ります。
  • bytes:バイト単位。
  • kilobytes:キロバイト単位。
  • megabytes:メガバイト単位。
echo
echoコマンドは、環境変数を出力する働きをします。 attributesには、varを取ります。
var
var="name"で、nameに環境変数名を入れます。この環境変数には、CGIの環境変数(16.2 参照)のほか、次のものを取ることができます。
  • DATE_GMT:グリニッジ標準時年月日時。
  • DATE_LOCAL:ローカル(現地の)年月日時。
  • DOCUMENT_NAME:ドキュメントファイル名。
  • DOCUMENT_URI:ドキュメントファイルの仮想パス名。
  • LAST_MODIFIED:ドキュメントの最終更新年月日時。
exec
execコマンドは、Webサーバー上のプログラムを実行し、標準出力への結果を挿入します。attributesとして、次のようなものを取ります。
cmd
cmd="args"で、argsに指定されたローカルパスのプログラムを実行します。
cgi
cgi="cgi"で、cgiに指定された仮想パスのCGIプログラムを実行します。
flastmod
flastmodコマンドは、ファイルの最終更新年月日時を求める働きをします。attributesとしてfileを取ります。
file
file="filename"で、最終更新年月日時を求めたいファイル名を指定します。
fsize
fsizeコマンドは、ファイルの大きさを求める働きをします。大きさの単位は、configコマンドで指定します。attributesとしてfileを取ります。
file
file="filename"で、大きさを求めたいファイル名を指定します。
include
includeコマンドは、指定した個所にファイルを挿入する働きをします。attributesとして次のようなものを取ります。
file
file="filename"で、ファイルのローカルパス名を指定します。
virtual
virtual="filename"で、ファイルの仮想パス名を指定します。

SSIは表現能力に限りがあり、Webサーバーに負荷をかけたりセキュリティホールを招くなどの問題があるため、あまり使われていません。ほとんどのWebサーバーではSSIの使用を禁止しています。

最近のWebサーバーでは、SSIの能力を向上させたサーバーサイドスクリプトをサポートしています。たとえばMicrosoft社のInternet Infomation Server(IIS)では、ASPというスクリプト言語を使うことができます。UNIXで主に使われているApacheには、PHPというスクリプト言語を追加することができます。また、両サーバー共に、PerlScriptというPerl言語環境の追加パッケージが存在します。

SSIやサーバーサイドスクリプトによって生成されたHTMLには、JavaScriptと異なり、どのようなスクリプトがそこに書かれていたのかは分からないようになっています。



Kenshi Muto
平成11年9月19日