[管理人さんのサイト開発・運用報告+αの書]

基礎 > CGI等の動的ページとは何か


[携帯版(QRコード)] 総閲覧回数:2,267,171回 / 日記拍手:726

作品DB等各サービスの機能追加情報や、技術系・面白系記事を中心に提供。
記事の投稿は基本Twitterでも告知させて頂いています。
連絡は作品DBの論客の方なら私書、DB外ユーザの方ならメールTwitterで可能です。
アクセス記録[推移 / PV内訳(過去1日 / 過去1週間) / 外部アクセス元 (昨日 / 過去1週間) / ログイン論客足跡]
プロフィール私書(メール)
   /   /送済
評価(一覧   /)
投票   /共:   /
ファン登録
作品/情報/
DB構築()
書き物
[書く]
攻略記事リンク集
My Play List
RSS購読
RSS
日記表示スタイル
リスト/携帯(QRコード)
画像/動画/音声/リンク
表示開始年月
日記内検索

分類
日記の主な内容
サイト運営/開発
検索エンジン情報
・技術ネタ(Berkeley DB,
Linux, Perl, サイト作成)等

サイト管理
全まとめ
サーバー管理
定期処理状況
開発予定
削除提案
作品追加依頼
OP/ED追加依頼
OP/ED not found
作品提案承認欄

格言 fromスクライド
この世の理は即ち速さ
20年かければ馬鹿でも
傑作小説を書ける

助けられたら助け返す
それが俺のルール

強くなるには
一番弱い考えをする事だ
そしてその考えに反逆する



近頃介護DBとかの為に
介護関連の勉強中
<=新記事2002/04/15 HTML:: ホームページの正しいパスの書き方
=>古記事2002/04/14 基礎:: ホームページとは何か

1. 2002/04/14 同日2番目 ホームページ制作技術 > 基礎 > CGI等の動的ページとは何か」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]

1. 文章目的
2. 内容


1. 文章目的

何かCGIって掲示板とかチャットとか作るのに使われているのは分かるけど、という漠然とした理解で使われている方も結構いると思う。
ここでは、そんな漠然さを明確なものにし、確かな理解でCGI等動的ページを作れる基礎理解を提供しようと思う。


2. 内容

貴方のマシン上では、例えばVirus対応のソフトなど、色々なソフトウェアがある。
単純に考えると、貴方がそのプログラムがあるとこをクリックすると、そのプログラムは起動する。
つまり、そのファイルを開こうとすると(=要求すると)、そのプログラムは起動するわけだ。

貴方が、そのプログラムを、他マシンから、起動させたいと思うということは、つまりのとこ、他マシンから貴方のマシン上にあるファイルを開かせるということに等しい。
これをウェブサーバー上のプログラムを起動するとういことに置き換えて考えてみる。
ウェブサーバーからアクセスできるところにそのプログラムを置けば、そのファイルは他マシンからも要求することができるということになる。
そして、それは、単純なテキストファイルなどと違い、プログラムなので、そのプログラムを実行して、その結果を返すことになる。

そのプログラムに対する要求受け付け、実行結果返しは、サーバー側では、 ウェブサーバーを代理人として行われるわけだが、もちろん、そのプログラムが返す結果は、 まずウェブサーバーが受け付けられるものでなければならない。
まず、ウェブサーバーは、ファイルの拡張子を見て、どんな対応をするかを決める。
これは、設定によって、色々切り替えることができるが、一般的に、プログラムの拡張子を.cgiとすると、そのプログラムは実行結果として、ブラウザーが解釈できる結果を返すものと想定して、サーバーは反応を返す。

そう、単純に言って、CGIは、要求されたらそこのコンピューター上にあるプログラムが実行され、その結果をウェブサーバーが解釈できる形式で返すに過ぎない。
つまり、どんなプログラムであっても、ウェブサーバー上にユーザーがアクセスできるように置けば、そのファイルをウェブサーバー経由で開かれることで、そのプログラムは実行され、結果として、ウェブサーバーに理解できる形式で結果を返すようにすれば、ウェブ経由でのアプリケーション実行が成立することになる。
.cgi?situmon=japan&output=japanese など、?の後ろのものは、引数と呼ばれ、そのプログラムの実行され方を変える。

そのプログラムが、そのマシン上のファイルを開いて何らかの処理をしようが、また別のプログラムをそこから呼んで、何か処理をしようが、とにかく結果としてウェブサーバーが理解できる形式の結果を出すことさえできれば、そのプログラムは、ウェブ経由で実行できるウェブリケーションになるということだ。
単純にいえば、それが、Common Gateway Interface (CGI)だ。

一般的に言って、プログラムは、それが処理するデータがあって、その処理のために実行される。

【ブラウザー等クライアントプログラム】
↑↓
結果↑↓プログラムをURLで開く
↑↓
【ウェブサーバー(要求受付→プログラム実行→結果受取→結果引渡し)】
↑↓
結果↑↓データベースへの要求投げ
↑↓
【データベース】
一般的には、データベースは、単なるファイルであったりすることが多いが(その場合には、それを要求したプログラムに、単純にファイルが開けられたり書き込まれたりされるだけ)、SQLサーバーなどと呼ばれるデータベース内部に更に処理機能等を持つ本格的なデータベースなどを使った場合、それは、よく三階層モデルと呼ばれる。
GUI(グラフィック・ユーザー・インタフェース), ウェブリケーション(=ウェブで実行されるアプリケーション), データベースという三階層に、システム構成を切り分け、個別に構成要素を切り分けて(独立させて)、開発を進められるからだ。
近年のウェブブラウザーの解釈機能の充実、データ共有の流れ、サーバー・クライアント間交渉言語としてのHTTPプロトコルの優性からいって、このモデルは、近年大きな広がりを見せているが、これからもますます広まっていくと思われる。

コメントする
Check

[他の記事も読む]
<=新記事2002/04/15 HTML:: ホームページの正しいパスの書き方
=>古記事2002/04/14 基礎:: ホームページとは何か

大分類が「ホームページ制作技術」の記事
この論客の記事全て



作品DB等各サービスの機能追加情報や、技術系・面白系記事を中心に提供。
記事の投稿は基本Twitterでも告知させて頂いています。
連絡は作品DBの論客の方なら私書、DB外ユーザの方ならメールTwitterで可能です。