## 1 はじめに

CGI スクリプトは、HTTP サーバによって起動され、 通常は HTML の`<FORM>` または `<ISINDEX>` エレメントを 通じてユーザが入力した内容を処理します。

ほとんどの場合、CGI スクリプトはサーバ上の特殊なディレクトリ cgi-bin の下に置きます。HTTP サーバは、まずスクリプトを 駆動するためのシェルの環境変数に、リクエストの全ての情報 (クライアントのホスト名、リクエストされている URL、クエリ文字列、 その他諸々) を設定し、スクリプトを実行した後、スクリプトの出力を クライアントに送信します。

スクリプトの入力端もクライアントに接続されていて、この経路を通じて フォームデータを読み込むこともあります。それ以外の場合には、 フォームデータは URL の一部分である 「クエリ文字列」を介して 渡されます。このモジュールでは、上記のケースの違いに注意しつつ、 Python スクリプトに対しては単純なインタフェースを提供しています。 このモジュールではまた、スクリプトをデバッグするための ユーティリティも多数提供しています。また、最近はフォームを 経由したファイルのアップロードをサポートしています (ブラウザ側 がサポートしていればです)。

CGI スクリプトの出力は 2 つのセクションからなり、空行で分割 されています。最初のセクションは複数のヘッダからなり、 後続するデータがどのようなものかをクライアントに通知します。 最小のヘッダセクションを生成するための Python のコードは 以下のようなものです:

    print "Content-Type: text/html"     # 以降のデータが HTML であることを示す行
    print                               # ヘッダ部の終了を示す空行

二つ目のセクションは通常、ヘッダやインラインイメージ等の付属した テキストをうまくフォーマットして表示できるようにした HTML です。 以下に単純な HTML を出力する Python コードを示します:

    print "<TITLE>CGI script output</TITLE>"
    print "<H1>This is my first CGI script</H1>"
    print "Hello, world!"