Common Gateway Interface
クライアントからのHTTPリクエストのボディ部はCGIプログラム標準入力に流し込まれる。また、その入力の長さが環境変数 CONTENT_LENGTH に設定されている。これはHTMLフォームから POST メソッドで入力を受けるのに便利である。 CGIプログラムに対応する仮想パスの後に、更に余分のパスが続いた場合、その情報は環境変数 PATH_INFO に格納され PATH_INFO をウェブサーバの仮想パスと解釈した際に対応すべき物理パスが環境変数 PATH_TRANSLATED に格納される。この方式もまたCGIプログラムにユーザー側からパラメータを渡す目的でよく用いられる。
プログラムが標準出力に出力したデータは、ウェブサーバを経由してクライアントに送られる。このデータは正当なHTTPヘッダで始まらなければならない。
ただし、いくつかの特別なヘッダフィールドは「サーバディレクティブ」として解釈され、ウェブサーバの挙動(ステータスコードなど)に影響を与える。これ以外の全てのヘッダフィールドはそのままクライアントに送信される。
現在のウェブではHTMLが中心的な役割を果たしているので、CGIプログラムはHTMLを出力するケースが圧倒的に多い。
画像データなどを出力することもある(これはアクセスカウンタなどを作る際に使われる)。