CGIでは、「ユーザーの入力を受け取る→プログラムがそれを処理する→結果をクライアントに送り返す」という形で処理を進めます。この仕組みは少し複雑なので、もう少し簡単な仕組みを先に理解しておきましょう。
- 仕組みはSSIの方が単純 -
CGIと似た機能にSSIがあります。SSIは“Server Side Include”の略で、文字通り「サーバー側にプログラムを組み込んで実行する」仕組みです。
SSIとCGIの決定的な違いは、
SSIはユーザーからの入力を受け取れない
という点です。
そのため、仕組みとしては非常に単純になります。現在の日付や時刻を表示させたり、Webサイトにアクセスした人の件数を数えるアクセスカウンタなど、ユーザーの入力を受け付ける必要のない処理では、SSIの方が簡単です。
- シンプルな処理に向いている -
CGIでは単独のプログラムが実行されます。SSIでも同じように単独のプログラムをWebサーバー側に保存しておき、それを実行させることもできますが、SSIの場合は別プログラムを用いず、実行したい処理をHTMLファイルの中にスクリプトとして記述することもできます。
この場合、プログラムのソースコード自体はHTMLファイルの中に記述されますが、プログラムを実行するのはクライアントではなくWebサーバーの側です。
現在時刻の表示などは、命令文を1行書くだけで実現できます。また、HTMLファイルの中に、別のHTMLファイルの内容を表示させたり、CGIプログラムを実行させることもできます。
日付の表示処理などは、現在ではSSIよりJavaScriptを使った方が簡単でしょう。しかし、Javaを実行できない(あるいは実行できる機能を制限している)ブラウザも存在します※2。サーバーサイドで実行されるSSIなら、ブラウザの設定に関係なくプログラムを実行できます。
※2 特にセキュリティの面から、クライアント・コンピュータのブラウザでJavaやActiveXの実行機能を制限している企業や研究機関も多くあります
- 結果の送信手順が異なる -
HTMLファイルの中にプログラムの実行命令を記述しておくという点は、CGIもSSIも同じです。しかし、処理結果の表示方法が異なります。
CGIでは、CGIを通じて実行されたプログラムが直接Webサーバーに対してHTMLデータを送りますが、SSIではHTMLファイルがブラウザに送られる前にHTMLファイル内に記述されたプログラムが実行され、その処理結果がHTMLファイルの中に書き込まれた状態で、ブラウザに送られます。
図5:SSIによる日付表示
|
|
|