CGIの作成が厄介なのは、サーバー上でプログラムを動作させるために、さまざまな処理の結果をWeb上に表示しなければならないところにあります。Web上でアンケートをとり、その結果を集計して、画面に表示するにはユーザーのパソコンとプロバイダーのサーバーとの間で情報をやりとりしなければならないわけです。ここがJavaScriptと決定的に違う部分です。判定文、ループ文などのプログラムの基本的な文法はjavaに似ていますが、Web画面へ出力をHTML形式でおこなわなければなりません。
実際のプログラムを例にとって、画面に文字を表示させる仕組みを説明しましょう。
#!/usr/local/bin/perl
print "Content-Type: text/html\n\n";
print
"<HTML>\n";
print "<HEAD>\n";
print
"<TITLE></TITLE>\n";
print "</HEAD>\n";
print
"<BODY>\n";
print "<P align=center><B><FONT size=+4
color=#ff0000>CGIによる画面表示プログラム</FONT></B><BR><BR>\n";
print
"わざわざCGIを使う必要はないですね・・・</P>\n";
print "</BODY>\n";
print
"</HTML>\n";
上記のプログラムは、perl言語で記述したプログラムです。まず1行目の
#!/usr/local/bin/perl
は、サーバー上に存在するperl言語へのパスが記述されています。これはプロバイダによって異なる場合があります。
2行目からが画面に表示する部分です。これはすべてprint文が使用されています。これは画面に文字を表示しなさいという命令です。ここで""の部分に、記述されているのがHTML言語です。第2行目には
print
"Content-Type: text/html\n\n";
と記述されていますね。Content-Type:
text/html というのはこれから実行するプログラムがテキスト形式のHTML文書であることを宣言するものです。
\n
は改行させる命令です。そして各行の最後には必ず;をつけなければなりません。
print
"<HTML>\n";
の部分以降は、ここからHTML形式の記述をするという宣言ですね。webブラウザのソースリストをみるとかならず最初の方にでてきますね。HTMLでは、本文は<BODY></BODY>の間に記述されます。このような約束事にしたがってprint文を使うことでperl言語でwebブラウザへの文字表示を可能にしています。このプログラムを実際にサーバーに設置するとこのようになります。わざわざCGIを使うまでもありませんね。