CGI【Common Gateway Interface】
概要

プログラムファイルの置かれているURLにクライアント(ブラウザなど)がアクセスすると、Webサーバがオペレーティングシステム(OS)を介してプログラムを起動し、実行結果がクライアントに送信される。主にWebページ上のフォームに記入されたデータの受け取りや、ブラウザからのファイルアップロードなどに用いられる。
Webサーバからプログラムへは環境変数や標準入力によりデータが渡される。例えば、アクセス元のIPアドレスは「REMOTE_ADDR」、ブラウザがURLパラメータ(クエリ文字列)として「?」以降に記述した内容は「QUERY_STRING」、ブラウザ名や利用者の実行環境は「HTTP_USER_AGENT」といった名前の環境変数で参照できる。
HTTPのPOSTメソッドでブラウザ側からHTTPリクエストのボディ部に格納されて送られてきたデータ(アップロードされたファイルなど)はプログラムの標準入力として渡される。
CGIの登場以前は、Webサーバはあらかじめ用意されたHTMLファイルなどの静的なコンテンツを要求に応じてただ送信するのみだったが、CGIによって閲覧者側からデータを受け取って動的に処理し、結果を送信内容に反映させられるようになった。
現在では多くのWebサーバが標準でCGIに対応しているため、サーバの種類を問わず同じプログラムを利用することができる。また、CGIは特定のプログラミング言語に依存しないため、様々な言語でプログラムを開発することができる。
CGIは仕組み上、Webサーバプログラムとは別にOSを介して外部のプログラム(プロセス)を毎回起動・終了するため、大規模環境では負荷が大きく、性能向上の妨げとなってきた。このため、プログラムをWebサーバプログラムの内部で実行する様々な仕組みが考案され、CGIに代わって広く利用されている。その多くはWebサーバ固有(ASP.NETなど)あるいはプログラミング言語固有(mod_perlやJSPなど)のため、汎用性ではCGIの方が優れていることが多い。
「CGI」の関連用語
他の用語辞典による「CGI」の解説 (外部サイト)
- ウィキペディア「Common Gateway Interface」
- imidas 時事用語事典「CGI」
- 日経 xTECH Tech-On!用語「CGI」
- 日経 xTECH IT基本用語辞典「CGI」
- Web担当者Forum 用語集「CGI」
- Insider's Computer Dictionary「CGI」
- とほほのWWW入門「CGI」
- NTT西日本 ICT用語集「CGI」
- ネットワークエンジニアとして「CGI」
- エリートネットワーク ビジネス用語集「CGI」