|
この項を読むにあたっては、一つ理解しててほしいことがある。
HTTPサーバーとは何か?ここら辺がよく分からない人は「とほほのWWW入門」を見て、勉強していただきたい。
(ホームページについても参考になるかな)
今のところ、Webサーバーを所有する人は少ないが、電話料金が安くなり、TCP/IPも改良されたら、一家に一台Webサーバーの時代も来るのではないだろうか。(極端)
Webサーバーとして操作する場合、最も注意を払わなきゃならないのが、HTTPサーバーである。・・・こんなこと書いたらFtpやProxyはどうしたとか言われそうだ。でも、今回はCGIに関する話を中心にするつもりなので、ご了承を。それにPoxyとかFtpで重要なことって、セキュリティがうんぬんかんぬんでしょ。僕もよくは知らないし、それ以前に興味ないし。
さて、Webサーバー作るのも結構簡単で、VectorにもフリーのWebサーバーは転がっているし、Windowsにも移植されたApache(Apache Project)もいいだろう。窓の杜もいいんじゃないかな。まぁ、労せず手に入るということだ。
あなたがWindowsNTユーザーなら、InternetInformationServer(IIS)がいいかな。GUIライクで使いやすいし
Webサーバーの設定も千差万別だから、ここで解説することもないだろう。Apacheなら.confという設定ファイルを書き換えればすむことだし、IISなら前記したようにGUIライクでそれが出来る。
どちらがいいかはあなた次第。
また、実際にこのWebサーバーを外部に向かって公開しようと思ったら、ドメイン名の登録が必要となる。・・・と、なると途端に面倒になるので(っていうか、ドメインの登録は月々1900円とかで金がかかる、DNSサーバーも必要)、IPアドレスを利用することにしよう。
一般的にモデムなどでユーザーがネットにログインする場合、その度に固有のIPアドレスを割り振られている。このIPアドレスをWebサーバーのサーバー名やらドメイン名に設定すると、外部からそのアドレスに向かってアクセスすることが出来る。
そういった意味で世の中には「一晩限りのWebサーバー」が無数にあると思う。
自分のIPアドレスを調べ方?Windowsならpingコマンドを使用すればいい。Linuxとか他は・・・、頑張って調べていただきたい。
で、基本的にHTTPサーバーにおいては、単純なHTTPリクエストのやり取りしかできない。
クライアントからの要求に対して、ファイルをダウンロードするぐらい。例えば、カウンタ一つにしても、カウント数の保存の為、サーバーファイルを更新する必要が出てくる。HTTPサーバーには元々そんな機能には備わっていない。まぁ、世の中にはそういったことも出来るHTTPサーバーがあるらしいが。
そこでサーバーサイドで動かすプログラムとして、CGIの存在が欠かせないものとなってくる。
CGIにも色々なものがあって・・・、
・実行ファイル(Windowsならば、.exe)
・Perlスクリプト(.pl、最も一般的)
・ASPファイル(.asp、IISならこれかな)
・Servlet(.class、Javaベース)
がある。
.exeを取り上げたことでも分かると思うが、要するに実行できれば何でもいいのだ。
ただ、使用する際にはHTTPサーバーに「この種類(フォルダ)のファイルはダウンロードしないで、サーバーで実行するんだよ」ということを認識させなきゃいけない。そこら辺の設定は何をCGIとして使用するかによって大きく変わってくる。あまり詳しく説明しないが、考え方としてはそんなところだろう。
.exeの場合、C言語で作成することになると思うが、ちょっと使いづらいように思える。POST(或いはGET)されたデータをどのように取り込むのか、少なくとも今の僕には分からない。そもそもサーバーアプリケーションを念頭として考えられた言語ではないので、難ありか。
.plとかPerlは最も一般的だろう。文字列操作に関しては最強の言語なのかもしれない。ただ、実際にソースを見たことのある人なら分かると思いますが、非常に分かりづらい。省略形があまりに多いからだろう。
でも既存のソースは豊富にある。世の中の掲示板システムと呼ばれるものは大概、Perlで作成されている。
WebサーバーにIISを選択するのなら、ASPがいいだろう。HTMLと構文が同じ(っていうか、スクリプトとして記述可能)なので、見た目にも分かりやすい。欠点はIISでしか使用できないこと。他のWebサーバー用にもモジュールが出ているとは思えない。
最後にServletですが、個人的にはこれが一番好きである。どうして好きかというと、やはりJava言語は作りやすいから。Perlもそうなんですが、Apache、IISの両方に対応しているから(JRunだね)。
あなたがもしVB言語に慣れ親しんでいるのなら、ASPがお勧めである。
何しろVBと言語構造が一緒だ。覚えるのも苦にはならないだろう。いやあ、Microsoftって偉大だねぇってつくづく感心してしまう。
もし大多数の人間がどっとアクセスすることを考慮すると、やはり起動時のオーバーヘッドをあまり考慮にいれないですむ、Servletが有利なのではないではないか。あ、でもASPにも
MicrosoftTransactionServiceという抜け道があるか。
追記すると、世の中にはJSPというJavaをベースとしたScript言語もある。でもこれって結局、.classファイルに変換して、Servletと同じ仕組みで使用するから、あまり問題視することないか。
さて、概要だけつらつらと並べただけで、具体的なことは何一つ書かなかったような気がするが、ここらでまとめてみる。
1.Webサーバーはオンラインソフトとしてただで手に入る。
2.個人ベースでもWebサーバー開設は何とか可能。
3.IIS + ASP は 簡単。
4.Perlはあちこちにソースが転がっている。
5.でもServletが個人的には好き。
ってところか。。
|