CGI
出典: フリー教科書『ウィキブックス(Wikibooks)』
情報技術 > CGI
目次 |
[編集] CGI
[編集] 概観
CGIとはCommon Gateway Interfaceの略であり(*CGIはプログラミング言語の名前ではない)、World Wide Webで動的な入力に応答(入力が静的な場合もあります)したり、動的な出力を行うための機構です。ここで動的とはたとえば、ブラウザからリクエストを受け付けた日時をページとして表示させるものも動的なページの一つです。w:Wikiやblog(Weblog)なども動的なページに含まれます。これに対して静的とはあらかじめ用意してあるHTML等で記述されたドキュメントを動的な変更を行わずに配信することを指しています。実際にCGIを用いているかどうかは別として、現在インターネット上で大規模、あるいは著名なウェブサイトのほとんどは何らかの動的な仕組みを有していると考えられます。CGIの仕組みを理解することは大規模なデータをインターネット上で出版する技術的な背景を学ぶのと強い関係があると言えます。
CGIはサーバの側(サーバーサイド)の振る舞いを動的にする機能であり、CGIに含まれないサーバサイドの動的な出力を行う技術として以下のものが挙げられます。
実現可能な機能に差はありますが、クライアント側に動的な機能を持たせる仕組みも開発されています。このようなものには以下があります。
- JavaScript (Ajax)
- Flash
- Javaアプレット(Java)
- Java Web Start
- ClickOnce
[編集] CGIの規格
CGIの規格は[1]で定められています。
[編集] Perl
[編集] 概観
Perlは汎用のプログラミング言語の一つであり、もっとも頻繁に用いられるCGIのほか、ネットワークアプリケーション、文字列処理、システム管理などさまざまな用途にも応用されています。
[編集] 注意
PerlはCGIでよく用いられるプログラミング言語ですが、CGIそのものとは無関係です。CGIでは標準入出力・コマンドライン引数・環境変数の扱いが可能である限りほとんど全てのプログラミング言語が利用可能です。
[編集] CGIのアーキテクチャ
[編集] 概観
CGIが行う動的な作用は主に以下の4要素によって成り立っています。
- 標準入力・標準出力・コマンドライン引数
- 環境変数
- HTTP
- HTMLのFORM要素
[編集] 動作環境
本稿では、Apache HTTP Serverを用いた例を示しますが、ほかにも多くのWWWサーバ(HTTPサーバ)でCGIが利用可能です。

