まずはちょっと動かしてみる

まずはちょっと動かしてみる

 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という名前で保存してください。

I'm WEBrick.

 もう一度、「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が上げられるほど、ソースが読みやすいとされています。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30