Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library webrick
library webrick
要約
汎用HTTPサーバーフレームワークです。HTTPサーバが簡単に作れます。
WEBrick はサーブレットによって機能します。サーブレットとは サーバの機能をオブジェクト化したものです。 ファイルを読み込んで返す・forkしてスクリプトを実行する・テンプレートを適用する など、「サーバが行なっている様々なこと」を抽象化しオブジェクトにしたものが サーブレットです。サーブレットは WEBrick::HTTPServlet::AbstractServlet の サブクラスのインスタンスとして実装されます。
WEBrick はセッション管理の機能を提供しません。
WEBrick の概要
以下は Web サーバとして完全に動作するスクリプトです。
require 'webrick' srv = WEBrick::HTTPServer.new({ :DocumentRoot => './', :BindAddress => '127.0.0.1', :Port => 20080}) srv.mount('/view.cgi', WEBrick::HTTPServlet::CGIHandler, 'view.rb') srv.mount('/foo.html', WEBrick::HTTPServlet::FileHandler, 'hoge.html') trap("INT"){ srv.shutdown } srv.start
ブラウザで http://127.0.0.1:20080/ にアクセスすることによって確認できます。 また http://127.0.0.1:20080/view.cgi にアクセスするとカレントディレクトリに置かれている view.rb がCGIスクリプトとして実行されます。http://127.0.0.1:20080/foo.html にアクセスすると カレントディレクトリ下の hoge.html の内容が表示されます。
上のスクリプトでは以下のような流れで view.rb は実行されます。
- サーバのパス /view.cgi と CGIHandler がマウントにより結びつけられます。
- パス /view.cgi にアクセスがあるたびにサーバは 'view.rb' を引数として CGIHandler オブジェクトを生成します。
- サーバはリクエストオブジェクトを引数として CGIHandler#service メソッドを呼びます。
- CGIHandler オブジェクトは view.rb を CGI スクリプトとして実行します。
このように WEBrick では Web サーバの機能の大部分がサーブレットの形で提供されています。 またサーブレットを作成することにより新たな機能を Web サーバに追加することもできます。
クラスとモジュール
同時にrequireされるライブラリ
サブライブラリ
webrick/cgi | 一般の CGI 環境で webrick ライブラリのサーブレットと同じように CGI スクリプトを書くための ライブラリです。サーバが WEBrick でなくても使うことが出来ます。 |
webrick/httpproxy | |
webrick/https | WEBrick::HTTPServer を SSL/TLS に対応させるための実装。 このファイルを require すると WEBrick::HTTPServer が SSL/TLS 対応になります。 |
webrick/ssl | WEBrick::GenericServer を SSL/TLS に対応させるための実装。 このファイルを require すると WEBrick::GenericServer が SSL/TLS 対応になる。 |