Perl/CGI研究室 'PERL-LABO'

Perl/CGI研究室 'PERL-LABO' TOPへ
戻る(History.Back)

CGIプログラムの拡張子のこと

研究内容

CGIプログラムの拡張子はcgiです。でも、これって何故?

結果

CGIプログラムの拡張子はcgi

CGIプログラムの拡張子はcgiとするのが普通ですね。 無料で配布されているCGIプログラムをダウンロードしてみると、みんな拡張子がcgiになっています。 私は、自分でCGIプログラムを作ろうと思うまで、長い間無料のCGIプログラムのお世話になりましたが、 みんな拡張子がcgiですから、「CGIプログラムの拡張子はcgiなんだー」 と、ごく普通に思っていました。

CGIプログラムの拡張子はなぜcgi?

CGIプログラムの拡張子がcgiなのには、実はちゃんとした理由があるんです。 ウェブサーバーで、CGIプログラムの拡張子はcgiですと決められているからなんです。 決められているというのは、そのサーバーの管理者さんによって決められているという意味です。 例えば、ウェブサーバーで良く使用されるのはApacheですが、 Apacheの場合、httpd.confという設定ファイルで

<Directory "/">
 Options +ExecCGI
 AddHandler cgi-script .cgi
</Directory>

なんていう風に設定されているんです。 これは、「拡張子cgiのファイルはCGIプログラムですよ」という意味になります。 説明っぽく書くと「拡張子cgiのファイルはCGIプログラムですから、 中身をそのままブラウザに渡すのではなくて、CGIの仕組みに従って、 そのプログラムを実行してそのプログラムが 出力したものをブラウザに渡すようにしてください」とウェブサーバーに お願いしている感じです。 だから、CGIプログラムは拡張子がcgiなんです。 もしここで 「拡張子hogehogeのファイルはCGIプログラムですよ」と指定したら、 hogehogeがCGIプログラムになります。

Perlだっていうのはどうやって指定するのか

拡張子cgiのファイルがCGIプログラムだと設定されているのは分かりました。 でも、いろんなプログラム言語でCGIプログラムを作ることができるっていう研究を前にしました。 それじゃあ、そのCGIプログラムがPerlで書かれてるっていうのはどうやってサーバーに知らせるんでしょう。 別のところで「Perlです!」ということを はっきりさせてやる必要がありますよね。 そうやって考えると、1行目のアレの意味がスッと理解できました。 それはまた次の話ですけども。

拡張子はplでもOK?

CGIのこととか考えなければ、 Perlで書かれたプログラムの場合、ファイルの拡張子をplにするっていうのが 普通みたいです。なので、拡張子plのファイルもCGIプログラムですっていうように ウェブサーバーで指定する流儀もあるみたいですね。この場合は拡張子はcgiでもplでも いいっていうことになりますが、でも一般的にはやっぱり拡張子cgiを使うみたいです。 ですから当サイトでは拡張子はcgiを使います。 で、拡張子plは他の用途に使うんだということで、これについてはそういう シーンが出てきたときに研究しましょう。

分かったこと

  1. CGIプログラムの拡張子はcgiです。
  2. それは、拡張子cgiのファイルはCGIプログラムだってウェブサーバーの設定がされてるからです。
  3. 拡張子plのファイルもCGIプログラムとして動くサーバーもあるようです。
  4. cgiとplのどっちでもいい場合でも、CGIプログラムの拡張子はcgiを使うことが多いようです。

メモ

  1. 拡張子plのファイルはPerlのライブラリという意味で使うんだそうな。
Perl/CGI研究室 'PERL-LABO' TOPへ
戻る(History.Back)

Copyright (c) 'PERL-LABO' All Rights Reserved.  リンクフリーです。