出力の流れ
CGIプログラム → 標準出力 → WEBサーバ → CGI出力 → ブラウザ
通常、Webサーバに置かれたHTML文書はブラウザで実行されます。しかし、上記のデータの流れを見てお分かりの通り、CGIプログラムはサーバ上で実行され、その結果をブラウザに返します。そのためアクセスが集中するとサーバの負荷が高まり、極端に速度が落ちる危険性もあります。最悪の場合、接続できなかったりサーバがパンクします。
プロトコル部://ホスト部/要求ファイル
プロトコル部リモートサーバでもローカルサーバでも、その上にあるファイル、プログラム、ディレクトリをアクセスするのにHTTPを用いることができます。プロトコル部の最後は必ず「:」で終わります。
ホスト部
プロトコル部の直後に「//」と記述し、その次にホスト部を指定します。ホスト部とは、インターネットでのサーバマシンのフルドメイン名(www.scollabo.comのようなもの)または、IPアドレス(192.168.1.1のようなもの)です。ホスト部の最後は必ず「/」で終わります。
FTPやTelnetなどその他のサービスは、またそれぞれ違ったデフォルトのポートアドレスを待ちます。UNlXの場合、デフォルトのポートアドレスはシステムごとに /etc/service という名前のファイルに格納されています。
ディレクトリ、ファイル、CGIプログラム
サーバがあなたのプログラムを見つけるために使うパスは、ホスト部の最後の「/」に続けて指定します。サーバはそのパスの要素を1つずつ調べながらドキユメントディレクトリをたどっていき、最終的にファイル、プログラム、ディレクトリのうちのいずれが要求されているのか(要求ファイル)を知ります。
それでは、HTMLと CGIプログラムはどのように関係しているのでしょうか?
それは、CGIを起動する主要な方法が、HTMLの form 要素を通じて呼び出す方法だということです。ただし、CGIプログラムは必ずしも HTMLのフォームを通じて呼び出す必要はありません。
CGIプログラムは、アンカー要素でも置換え要素でも、任意に呼び出すことができるからです。つまり、各要素の属性値で示される URLによって CGIプログラムを起動させることができ、それではじめてインタラクティブな環境を提供します。
その意味で、Webブラウザ上で展開される CGIプログラムの結果は、HTMLと密接に関係しているといえます。