## CGIの概要

トップ > とほほのCGI入門 > CGIの概要

#### ■ 目次

- CGIとは？
- CGIの処理の流れ
- CGIスクリプト

#### ■ CGIとは？

CGI とは Common Gateway Interface の略です。通常のページでは、あらかじめ用意された HTML ページを表示するだけですが、CGI を用いることにより、例えば、以下のようなページを作成することができるようになります。

- カウンター
- チャット
- 掲示板
- アンケートフォーム

#### ■ CGIの処理の流れ

CGI 処理の流れは次のようになります。

Web ブラウザ
| −要求→ ←結果− |
WWW サーバー
| −起動→ ←結果− |
CGI プログラム

(1) ブラウザがWWWサーバーに要求する
ブラウザは特に「CGI を起動する」とは意識しません。<a href="〜"> や <img src="〜"> や <form action="〜"> で記述されたアドレス(URL)を単にサーバーに要求するだけです。

(2) サーバーが CGI プログラムを起動する
サーバーは受け取った URL を見て、これが CGI プログラムかどうか判断し、CGI プログラムであるならこれを起動します。判断の基準は拡張子が .cgi であるとかですが、サーバーの設定やプロバイダによって異なります。CGI をサポートしていないサーバーやプロバイダもあります。

(3) CGI プログラムは結果を返す
CGI プログラムは標準出力に実行の結果を書き出します。CGI プログラムの作り方次第で、複数のファイルを読み込んで連結したり、カウンター値を演算してその結果を返すことができます。

(4) CGI プログラムの結果をブラウザに返す
CGI プログラムが書き出した内容は、WWW サーバーを経由して、Web ブラウザに送信され、Web ブラウザはこれを表示します。

#### ■ CGIスクリプト

「CGI」とは WWW サーバーがプログラムを起動する際の起動方法（環境変数の名前や値）を定めた仕様の名称です。この仕様に基づいて作成されたプログラムを「CGIプログラム」と呼びます。

「CGIプログラム」のうち、Perl、awk、sh などコンパイル作業が不要なスクリプト言語で記述されたものを「CGIスクリプト」と呼びます。CGI プログラムは Perl で記述されたものが多いですが、環境変数と標準入力を参照できて、結果を標準出力に書き出せるものであれば、C言語、C++言語、VisualBasic でも何でも構いません。

本書では特に Perl を用いた CGI を中心に説明していきます。Perl に関する詳細は「とほほの perl 入門」を参照してください。

Copyright (C) 1996-2003 杜甫々
最終更新日：2003年11月26日版
http://www.tohoho-web.com/wwwcgi1.htm