WEBrickを使ってみよう!
まずはちょっと動かしてみる
WEBrickを使うにはRuby 1.8以上がインストールされている環境が必要です。Rubyをインストールしていない方は、Rubyのインストール(http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby+Install+Guide)を参考にお使いの環境へインストールしてください。
Webサーバーとして動かすのに必要なコードは、たった10行です。図1のリスト1を入力してhttpserver1.rbという名前で保存してください。
Apacheの設定をしたことのある方であれば、おおよそ見当はつくと思いますが、リスト1内の6、7行目が設定に当たる部分です。今回は8000番ポートで起動し、ファイルを置くDocumentRootはカレントディレクトリ下のpublic_htmlになります。
次にこのスクリプトを起動してみて、実際にこのWebサーバーにアクセスしてみましょう。コマンドプロンプトから図1の下のように実行します。
このスクリプトを起動したのと同じマシンから、「http://localhost:8000」をWebブラウザで開きます。
「Index of/」と表示され「Parent Directory」が表示されればOKです。「Not Found」と表示された場合、DocumentRootで指定したディレクトリがない可能性があるので、以下のコマンドを実行してください。
$ mkdir public_html
続いて、public_htmlの下に何かHTMLファイルを置いてみましょう。以下を入力してindex.htmlという名前で保存してください。
もう一度、「http://localhost:8000」をWebブラウザで開くと、先ほど入力したHTMLがレンダリングされて表示されるはずです。
このWEBrickで作ったWebサーバーは、もちろんHTMLだけでなく、画像ファイルも同じように置いて表示させることができます。
このようにWEBrickは、通常のWebサーバーと同じように利用することができます。自分や社内向けなどで一時的にWebサーバーが必要な時はApacheよりもずっと楽に稼働させることができます。
WEBrickとApacheの違い
では、このWEBrickとApacheの違いはなんでしょうか。実は違いは、たった2点です。1つは添付しているモジュールの数で、もう1つは開発言語です。
WEBrickもApacheもファイルをHTTPで送信するという、基本的なWebサーバーとしての機能は備えています。ApacheではCoreモジュールと呼ばれる部分です。
Apacheは非常に高機能なWebサーバーですが、基本はこのCoreモジュールで提供されており、それ以外のCGIやProxy、URL書き換えなどの機能はそれぞれのモジュールとして提供されています。Apache 2.2ではこのモジュールが81個標準で含まれています。それに対してWEBrickは、標準機なWebサーバーとProxyサーバーの機能のみが提供されています。
WEBrickは、標準的な機能が少ない分シンプルにできており、プログラムによる拡張が容易になっています。加えてすべてがRubyで書かれているために、全体の把握が容易で特に学習には向いているでしょう。最近では、Rubyのコードの書き方のお手本の1つとしてWEBrickが上げられるほど、ソースが読みやすいとされています。