[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[vine-users:027085] Re: CGI について


This is reply to...
【date】       2000/10/07 15:21:19
【subject】    [vine-users:027081] Re: CGI について
【written by】 mieko <miekko _at_ mx8.freecom.ne.jp>
=====================================================================

松田です。

用語の認識に若干誤りがあるようです。

CGI     Common Gateway Interface の略で、ブラウザからのアクセスがあった
        際にサーバ側でプログラムを起動してデータ処理をする仕組み。その為
        にプログラム言語である、Perl・Ruby等が使用される。
参考:http://www.ascii.co.jp/ghelp/14/001421.html


Perl    プログラム言語。CGIでデータを処理する際に利用される。ソースコー
        ドのまま実行できる。
参考:http://www.ascii.co.jp/ghelp/18/001875.html

です。


一連の流れは、(かなりいい加減な書き方ですが)

1.IEやNetscape等のブラウザ(HPを見るためのプログラム)でWebサーバにア
クセスする。(http://192.168.0.18/と入力する)

2.IPアドレス「192.168.0.18」が割り当てられているWebサーバはブラウザか
らデータを配信するようにリクエストを受ける。

3.それがCGIプログラムであった場合(拡張子.cgi)、サーバ上でそのプログ
ラムを実行し、*結果のみ*をブラウザに伝える。(結果はブラウザが理解できる
HTML形式の場合が一般的)

4.ブラウザは受け取った結果をHTMLとして表示する。

という感じです。

すなわち、ブラウザから、test.cgiに対するを配信リクエストを受けたWebサー
バは、

> #!/usr/bin/perl
> 
> print "Content-type: text/html\n";
> print "\n";
> print "<HTML>\n";
> print "<HEAD>\n";
> print "<TITLE>テスト</TITLE>\n";
> print "</HEAD>\n";
> print "<BODY BGCOLOR=\"#FFoooo\">\n";
> print "これはCGIのテストです。\n";
> print "</BODY>\n";
> print "</HTML>\n";

このPerlスクリプトを実行し(printは出力する命令なので)、その結果である

Content-type: text/html

<HTML>
<HEAD>
<TITLE>テスト</TITLE>
</HEAD>
<BODY BGCOLOR="#FFoooo">
これはCGIのテストです。
</BODY>
</HTML>

を受け取り、1行目を読んでHTML文章だと判断し、3行目以降をHTMLとして解釈し
て、画面に


これはCGIのテストです。


とだけ出力するわけです。

ですから、

> そこで、コマンドでCOMPIL結果を適当なFILEに出力し『test.htm』にし
> NETSCAPEで起動したら、画面が表示されました。

Netscapeで指定する場合は、「test.cgi」を指定します。
http://192.168.0.18/cgi-bin/test.cgi
(これはWebサーバの設定・データをどこに置いたかによります。)

出力される結果(ブラウザに配信されるデータ)は上に書いたとおり、HTMLファ
イルになります。

> 設定に誤りが無ければ test.cgi で画面が表示するのですよね????????
> どこかで大きな誤りをしているようです。?????

以上の理由により、test.cgiそのものは表示しません。test.cgiの実行結果を出
力します。
これはよくある掲示板やチャットのスクリプトでも同じ事で、ブラウザから送信
されてくる文字データ等をCGIの機能によりWebサーバがPerl等のプログラム言語
で処理し、その結果としてブラウザにはHTML形式でデータを配信する。

ただし、これもWebサーバの設定として、test.cgiが実行可能な属性になってな
いとならないですし、同じくWebサーバでCGIの機能が有効になっていなければな
りません。

ということです。

それとCOMPILEとは、プログラムのソースコード(人間が理解できるような命令
やコマンドの形式で書かれたもの)をコンピュータが直接実行できるようなバイ
ナリデータの固まりに翻訳する作業を指します。

CGIの場合はソースコード(上記のprint文などでかかれたプログラム)のまま実
行しますので、この場合は関係ありません。

2000/10/07
--
松田征弘
E-MAIL:matsu _at_ e-mail.club.ne.jp

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: