CGI

出典: フリー教科書『ウィキブックス(Wikibooks)』
移動: 案内, 検索

メインページ > 工学 > 情報技術 > プログラミング > CGI

Wikipedia
ウィキペディアCommon Gateway Interfaceの記事があります。

CGI(シージーアイ、Common Gateway Interface)とは、ウェブサーバ上で動作するプログラムがウェブページを生成できるようにする仕組みです。CGIプログラムの記述にはPerlなどのスクリプト言語がよく用いられますが、基本的に標準入出力を備えているプログラミング言語であれば(たとえばC言語シェルスクリプトでも)CGIプログラムを記述することは可能です。

[編集] 概要

CGIとはウェブページでユーザからの入力に応答したり、動的な出力を行ったりするための機構です。CGIの規格は[1]で定められています。ここで動的とはたとえば、ブラウザからリクエストを受け付けた日時をページとして表示させるものも動的なページの一つです。ウィキブログなども動的なページに含まれます。これに対して静的とはあらかじめ用意してあるHTML等で記述されたドキュメントを動的な変更を行わずに配信することを指しています。

実際にCGIを用いているかどうかは別として、現在インターネット上で大規模、あるいは著名なウェブサイトのほとんどは何らかの動的な仕組みを有していると考えられます。CGIの仕組みを理解することは大規模なデータをインターネット上で出版する技術的な背景を学ぶのと強い関係があると言えます。

CGIが行う動的な作用は主に以下の4要素によって成り立っています。

  • 標準入力・標準出力・コマンドライン引数
  • 環境変数
  • HTTP
  • HTMLのFORM要素

本書ではApache HTTP Serverを用いた例を示しますが、ほかにも多くのウェブサーバでCGIが利用可能です。

[編集] CGIプログラムの例

Perlによる単純なCGIプログラムの例です。

#!/usr/local/bin/perl
use strict;
use warnings;
 
print <<"EOT";
Content-Type: text/html; charset=UTF-8
 
<!DOCTYPE html>
<html>
<head>
<title>Example Web Page</title>
</head>
<body>
<p>Hello, world!</p>
</body>
</html>
EOT

より高度なCGIプログラムは次のようになります。

#!/usr/local/bin/perl
use strict;
use warnings;
use CGI;
my $q = CGI->new;
print $q->header( -charset => "UTF-8" );
print $q->start_html( -title => "Example Web Page" );
print $q->p("Hello, world!");
print $q->end_html;

[編集] 関連書籍

このページ「CGI」は、書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にノートへどうぞ。
個人用ツール
名前空間

変種
操作
ナビゲーション
ヘルプ
印刷/エクスポート
ツールボックス