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 は実行されます。

  1. サーバのパス /view.cgi と CGIHandler がマウントにより結びつけられます。
  2. パス /view.cgi にアクセスがあるたびにサーバは 'view.rb' を引数として CGIHandler オブジェクトを生成します。
  3. サーバはリクエストオブジェクトを引数として CGIHandler#service メソッドを呼びます。
  4. CGIHandler オブジェクトは view.rb を CGI スクリプトとして実行します。

このように WEBrick では Web サーバの機能の大部分がサーブレットの形で提供されています。 またサーブレットを作成することにより新たな機能を Web サーバに追加することもできます。

クラスとモジュール

module WEBrick

ライブラリ webrick の各クラスを提供するモジュールです。

module WEBrick::AccessLog

WEBrick::HTTPServer のアクセスログの形式を処理するために内部で使われるモジュールです。

class WEBrick::BasicLog

ログを取る機能を提供するクラスです。

module WEBrick::Config

色々なクラスの設定のデフォルト値を提供するモジュールです。

class WEBrick::Cookie

Cookie を表すクラスです。[RFC2109] に準拠しています。 RFC2109 は [RFC2965] により破棄されましたが、WEBrick::Cookie クラスは RFC2965 に対応していません。

class WEBrick::Daemon

サーバのタイプを表すクラスです。 WEBrick::GenericServer.new の設定の :ServerType の値として指定した場合 サーバはデーモンとして動作します。

class WEBrick::GenericServer

サーバの一般的な機能を提供するクラスです。 WEBrick::HTTPServer のスーパークラスです。

module WEBrick::HTMLUtils

HTML のためのユーティリティ関数を提供します。

module WEBrick::HTTPAuth

ユーザ認証の機能を提供するモジュールです。

module WEBrick::HTTPAuth::Authenticator
class WEBrick::HTTPAuth::BasicAuth

HTTP の Basic 認証のためのクラスです。

class WEBrick::HTTPAuth::DigestAuth

[[unknown:執筆者募集]]

class WEBrick::HTTPAuth::Htdigest

Apache の htdigest 互換のクラス。

class WEBrick::HTTPAuth::Htgroup

[[unknown:執筆者募集]]

class WEBrick::HTTPAuth::Htpasswd

Apache の htpasswd 互換のクラス。.htpasswd ファイルを新しく作成することも出来る。 htpasswd -m (MD5) や -s (SHA) で作成された .htpasswd ファイルには対応していません。

module WEBrick::HTTPAuth::ProxyAuthenticator
class WEBrick::HTTPAuth::ProxyBasicAuth
class WEBrick::HTTPAuth::ProxyDigestAuth
module WEBrick::HTTPAuth::UserDB
class WEBrick::HTTPRequest

HTTP リクエストのためのクラスです。

class WEBrick::HTTPResponse

HTTP のレスポンスを表すためのクラスです。

class WEBrick::HTTPServer

HTTP サーバの機能を提供するクラスです。

class WEBrick::HTTPServlet::AbstractServlet

サーブレットの抽象クラスです。実装は AbstractServlet のサブクラスで行います。

class WEBrick::HTTPServlet::CGIHandler

CGI を扱うためのサーブレット。

class WEBrick::HTTPServlet::DefaultFileHandler
class WEBrick::HTTPServlet::ERBHandler
class WEBrick::HTTPServlet::FileHandler

通常のファイルサーバとしての機能を提供するためのサーブレット。

class WEBrick::HTTPServlet::ProcHandler

Proc を扱うためのサーブレット。

module WEBrick::HTTPStatus

HTTP のステータスを表す例外クラスを提供するモジュールです。 ステータスコード 200 などの成功の場合も含まれます。

module WEBrick::HTTPUtils

HTTP のためのユーティリティ関数を提供します。

class WEBrick::HTTPUtils::FormData

クライアントがフォームへ入力した値を表すクラスです。multipart/form-data なデータを表すのにも 使われます。

class WEBrick::HTTPVersion

HTTP のバージョンのための小さなクラスです。 バージョン同士の比較のために使います。

class WEBrick::Log

ログを取る機能を提供するクラスです。 WEBrick::BasicLog との違いはログの各行の先頭に 現在時刻が自動で挿入される点です。

class WEBrick::SimpleServer

サーバのタイプを表すクラスです。 WEBrick::GenericServer.new の設定の :ServerType の値として指定した場合 サーバは通常のプロセスとして動作します。

module WEBrick::Utils

ライブラリ webrick のための小さなユーティリティ関数を提供するモジュールです。

同時にrequireされるライブラリ

webrick/accesslog
webrick/compat
webrick/config
webrick/cookie
webrick/htmlutils
webrick/httpauth
webrick/httpauth/authenticator
webrick/httpauth/basicauth
webrick/httpauth/digestauth
webrick/httpauth/htdigest
webrick/httpauth/htgroup
webrick/httpauth/htpasswd
webrick/httpauth/userdb
webrick/httprequest
webrick/httpresponse
webrick/httpserver
webrick/httpservlet

このファイルを require すると、 WEBrick::HTTPServlet::FileHandler に対して 拡張子 .cgi と .rhtml のためのハンドラを設定します。

webrick/httpservlet/abstract
webrick/httpservlet/cgihandler
webrick/httpservlet/erbhandler
webrick/httpservlet/filehandler
webrick/httpservlet/prochandler
webrick/httpstatus

HTTP のステータスを表す例外クラスを提供します。

webrick/httputils
webrick/httpversion
webrick/log
webrick/server
webrick/utils

サブライブラリ

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 対応になる。

Classes

Sublibraries