HTMLの生成
 
CGIスクリプトは最終的にブラウザになんらかの応答を返す必要があります。通常はHTMLを作成して送り返します。
 
 
print "Content-Type: text/html\n\n";

Content-Typeは内容がどういうものかをMIMEタイプで指示します。HTMLを指示するために text/html というMIMEタイプを指示します。MIME とは Multipurpose Internet Mail Extensions の略で、名前からするとおり、もともとは E-Mail でプレーン・テキストだけでなく、イメージやビデオなどの他のデータタイプも送れるようにするためのものです。

改行が2つありますが、CGI が出力すべきデータはヘッダ部分(HTMLの<HEAD>タグのヘッダではありません)とボディ部分に分かれていて、空白行がヘッダ部分の終わりを示します(E-Mail や News の方式と同様です)。Content-Type: はヘッダ部分に書かれるものです。
 
print "Content-Type: text/plain\n\n";
とすれば、HTMLではなくプレーン・テキストをブラウザに表示させることができます。

ヘッダ部分は Content-Type: だけではありません。通常、Content-Type: 以外はサーバが自動的に付加してくれます。クライアント(ブラウザ)では Content-Type に応じた動作をします。

Content-Type には次のようなMIMEタイプが指定できます(他にもたくさんあります)。
text/html HTML文書
text/plain プレーン・テキスト
image/jpg 
image/jpeg
JPEGイメージ
image/gif GIFイメージ
video/mpg 
video/mpeg
MPEG-1ビデオ

次に完全なヘッダ部分の出力例を示します。
 
HTTP/1.0 200 OK
Date: Friday, 15-May-98 23:37:01 GMT
Server: Netscape/2.1
MIME-version: 1.0
Content-Type: text/html
Content-length: 1000

<HTML>
<HEAD>
<TITLE>Welcome to CGI & Perl Reference!</TITLE>
</HEAD>
<BODY>
...
</BODY>
</HTML>