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日