2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

CGIの基礎!

インターネットのインターラクティブなWebページを実現する方法には、大きく分けて、サーバー側で処理を行うものとクライアント側で処理を行うものとがある。以下でそこいら辺について説明する。前者の代表的なものがCGI(CommonGatewayInterface)と呼ばれる仕組みである。CGIを利用して実現しているインターネット上のサービスには、掲示板や検索エンジンなどがある。共通しているのは、Webブラウザで入力したデータに応じて、表示されるページが変化する点だ。具体的に何が起きているかを手順を追って見てみることにする。以下(図1参照)
図1

まず、ユーザーがWebブラウザ上のフォームで、文字の記入やチェックボックスによる選択などの方法でデータを入力する。

次に、WebブラウザはHTMLファイルで指定されているサーバー側のCGIプログラムに対して、ユーザが入力したデータを送る。

CGIプログラムは、そのデータに基づいて一定の処理を行う。例えば、掲示板なら新しい発言の追加、検索エンジンならデータベースの検索といった処理だ。CGIプログラムがその結果をHTML形式で生成し、Webブラウザに送信することで、ユーザがその結果を知ることが出来る。この仕組み全体をCGIと呼ぶが、CGIプログラムを指してCGIと呼ぶこともある。

他にサーバー側処理を実現する技術には、MicrosoftのWebサーバーであるIISがサポートするASP(ActiveServerPages)、オープンソースのWebサーバーApacheがサポートするPHPなどがある。

アクセスカウンタやメール送信フォーム、掲示板と言った定番のCGIは、プロバイダ側があらかじめプログラムを用意していることが多い。プロバイダが示す手順に沿って作業すれば、簡単に設置できるはずである。標準CGIの欠点は、多くのユーザがプログラムを共有するため動作が遅いこと。特にアクセスカウンタの表示がタイムアウトになって壊れているページをよく目にする。CGIを自前で用意すれば、このような問題はなくなる。また、プロバイダが用意していないタイプのCGIを使いたい場合もあると思う。

ただし、ユーザが用意したCGIプログラムの使用は許可していないプロバイダが多い。不注意なユーザが処理の重いプログラムをWebサーバーで動作させてしまうと、そのサーバーを共用している多のユーザーに迷惑がかかるからだ。独自のCGIを使用したい場合は、契約しているプロバイダが許可しているかどうかあらかじめ確認しておくことが大切である。

CGIのプログラムは、Webサーバー上で動作するものならどのような言語で記述してもかまわない。しかし実際には、CGIプログラムの多くは「Perl」と呼ばれる言語で記述されている。Perlのほかには、C言語やUnixシェルスクリプトなども使われる。Perlが多用される理由はいくつかある。まず、強力なテキスト処理能力を持っている点。CGIでは文字列の検索や置換といったテキスト処理が中心になるためである。また、コンパイルの必要がないスクリプト型の言語であるため、比較的取っつきやすい。すでにPerlで記述されたCGIが数多く存在するため、そのコードを再利用することで新たなCGIを効率的に開発できるのも利点である。文法的にはCと共通点が多いため、何らかの言語でプログラムを組んだ経験が有れば、習得は容易であると考える。Perlで記述されたCGIは「 ネットサーフレスキュー【Webの裏技】 」KENT WE 」といったWebサイトで入手できる。

以上

コメント