CGI 【Common Gateway Interface】

概要

CGI(Common Gateway Interface)とは、Webサーバが、Webブラウザなどからの要求に応じてプログラム実行する仕組みの一つ。Web上で最も初期から用いられている動的プログラム起動のための技術仕様で、多くのWebサーバソフトウェアが対応している。

プログラムファイルの置かれているURLクライアントブラウザなど)がアクセスすると、WebサーバオペレーティングシステムOS)を介してプログラムを起動し、実行結果がクライアントに送信される。主にWebページ上のフォームに記入されたデータの受け取りや、ブラウザからのファイルアップロードなどに用いられる。

Webサーバからプログラムへは環境変数標準入力によりデータが渡される。例えば、アクセス元のIPアドレスは「REMOTE_ADDR」、ブラウザURLパラメータクエリ文字列)として「?」以降に記述した内容は「QUERY_STRING」、ブラウザ名や利用者実行環境は「HTTP_USER_AGENT」といった名前の環境変数で参照できる。

HTTPPOSTメソッドブラウザ側からHTTPリクエストのボディ部に格納されて送られてきたデータアップロードされたファイルなど)はプログラム標準入力として渡される。

CGIの登場以前は、Webサーバはあらかじめ用意されたHTMLファイルなどの静的コンテンツを要求に応じてただ送信するのみだったが、CGIによって閲覧者側からデータを受け取って動的に処理し、結果を送信内容に反映させられるようになった。

現在では多くのWebサーバが標準でCGIに対応しているため、サーバの種類を問わず同じプログラムを利用することができる。また、CGIは特定のプログラミング言語依存しないため、様々な言語でプログラム開発することができる。

CGIは仕組み上、Webサーバプログラムとは別にOSを介して外部のプログラムプロセス)を毎回起動・終了するため、大規模環境では負荷が大きく、性能向上の妨げとなってきた。このため、プログラムWebサーバプログラムの内部で実行する様々な仕組みが考案され、CGIに代わって広く利用されている。その多くはWebサーバ固有(ASP.NETなど)あるいはプログラミング言語固有(mod_perlJSPなど)のため、汎用性ではCGIの方が優れていることが多い。

(2020.5.21更新)

他の辞典による解説 (外部サイト)

この記事を参照している文書など (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる