新しく質問する

CGIについて質問です 基本の基本です

役に立った:0件
  • 質問者:rossi46mail
  • 投稿日時:2012/02/05 13:32
  • 困り度:暇なときに回答をください
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

CGIについて勉強しようと考えているのですが全く意味が分かりません。

ブラウザの要求に対して、プログラムを起動さすためのサーバー側の仕組み。ということは分かるのですが、HPの中でどういう風に使用すればいいのでしょうか。

JavaScriptみたいに記述するのでしょうか。

それともCGIはサーバー側のシステムでこちらはPHPやPerl(PHPやPerlも言語ということしか分かりません。JavaScriptと同じ様な捉え方でいいのでしょうか)を使ってCGIを起動さすという考え方でいいのでしょうか。

全く知識はありませんが、WEBに関して色々勉強したいと考えているのでよろしくお願いいたします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.2ベストアンサー20pt

  • 回答者:jjon-com
  • 回答日時:2012/02/05 23:12

> ・CGIプログラムはウェブサーバがクライアントからのリクエストに応じて起動する。
> ・CGIプログラムへの情報の入力は、
>  コマンドライン引数、環境変数、標準入力によって行われる。
> ・プログラムが標準出力に出力したデータは、
>  ウェブサーバを経由してクライアントに送られる。
> ・CGIプログラムはHTMLを出力するケースが圧倒的に多い。
http://ja.wikipedia.org/wiki/Common_Gateway_Inte …

と解説されていますから,CGIとは何か?を端的に言うと,

・コマンドプロンプト画面において環境変数やキーボードによって入力データを与えられるプログラムならすべて,それをWebブラウザ→Webサーバへのデータ送信と同等に扱うことができる
・コマンドプロンプト画面に文字出力できるプログラムならすべて,Webサーバ→Webブラウザへのデータ送信と同等に扱うことができる

という仕組みを実現するためにWebサーバに用意された機能を指します。

したがって,コマンドプロンプト画面で入出力をおこなうプログラムであれば言語を問わずCGIプログラムにできるのですが,
現実にCGIプログラムを記述する言語として圧倒的に普及しているのはPerlということになります。


> HPの中でどういう風に使用すればいいのでしょうか。

HTML「の中で」は使用しません。
拡張子.htmlのファイルの中に静的なHTML文字列を記述しておくのではなく,
プログラムの実行結果としてHTML文字列を動的に生成して出力するのがCGIプログラムの働きですから。

通報する

この回答へのお礼

回答ありがとうございます。

> HTML「の中で」は使用しません。
拡張子.htmlのファイルの中に静的なHTML文字列を記述しておくのではなく,

これが知りたかったのです。
HTMLの中では使用しないんですね。
ありがとうございます。
すごくすっきりしました。

> プログラムの実行結果としてHTML文字列を動的に生成して出力するのがCGIプログラムの働きですから。

難しくてよく分かりませんが、プログラムの結果を出力する。これがCGIプログラムということなんですね。

回答していただいて本当にありがとうございます。

  • 参考になった:0件
  • 回答者:root139
  • 回答日時:2012/02/05 18:32

CGIの場合、Webサーバは対象のプログラムを起動してその出力を返すことになります。
ですので、javascript はHTMLの中で読込んだり書いたりするのに対し、CGIはプログラムの中でHTMLを出力する形になります。

下記は、「Hello」と表示するだけの Perl の簡単なCGIプログラムです。

例) ------------------------------------
#!/usr/bin/perl -w

print "Content-type: text/html\n\n";
print "<html><head></head><body>Hello</body></html>";
----------------------------------------

なお、サーバの状況・設定によって使える言語は異なりますが、一般的なレンタルサーバでは Perl が多いようです。
また、PHPはWebサーバのモジュールを使う方が一般的ですが、CGIとして動かすことも出来ます。

「CGI 入門」などで検索すれば、解説しているサイトがたくさんヒットしますから、それらを参考にされるとよいですよ。
http://www.tohoho-web.com/wwwcgi.htm

通報する

この回答へのお礼

回答していただきありがとうございます。

・CGIはHTMLを出力
・Perlの簡単なCGIプログラム
と言う事と、上記のURLを参照させていただいたのですが、
CGIはPerlやPHPなどの言語を呼び出すプログラムの名前ということで実際にはHTMLの中で書いたりはしないということでしょうか。
HTML内で記述するのはPerlやPHPと言った言語でCGIはurlに.cgiとなっている。
この考え方でいいのでしょうか。

フォームの入力の画面で.cgiとなってないサイトがたくさんあるため少し混乱してます。

CGI 入門などでもっと勉強してみます。

回答ありがとうございました。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter