Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 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 サーバに追加することもできます。

クラス

class WEBrick::BasicLog

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

  class WEBrick::Log

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

class WEBrick::Cookie

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

class WEBrick::Daemon

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

class WEBrick::GenericServer

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

  class WEBrick::HTTPServer

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

class WEBrick::HTTPAuth::BasicAuth

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

  class WEBrick::HTTPAuth::ProxyBasicAuth

プロクシの Basic 認証のためのクラスです。

class WEBrick::HTTPAuth::DigestAuth

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

  class WEBrick::HTTPAuth::ProxyDigestAuth

プロクシの Digest 認証のためのクラスです。

class WEBrick::HTTPAuth::Htdigest

Apache の htdigest 互換のクラス。

class WEBrick::HTTPAuth::Htgroup

Apache で証認に使用するユーザグループの一覧が格納されているテキストファイルを読み書きするためのクラスです。

class WEBrick::HTTPAuth::Htpasswd

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

class WEBrick::HTTPRequest

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

class WEBrick::HTTPResponse

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

class WEBrick::HTTPServer::MountTable

サーバ上のパスとサーブレットの対応関係を管理するためのクラスです。

class WEBrick::HTTPServlet::AbstractServlet

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

  class WEBrick::HTTPServlet::CGIHandler

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

  class WEBrick::HTTPServlet::DefaultFileHandler

通常のファイルサーバとしての機能を提供するためのサーブレットです。 WEBrick::HTTPServlet::FileHandler の内部で利用しています。

  class WEBrick::HTTPServlet::ERBHandler

ERB を扱うためのサーブレットです。

  class WEBrick::HTTPServlet::FileHandler

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

  class WEBrick::HTTPServlet::ProcHandler

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

class WEBrick::HTTPVersion

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

class WEBrick::SimpleServer

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

class WEBrick::HTTPUtils::FormData

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

モジュール

module WEBrick

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

module WEBrick::AccessLog

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

module WEBrick::Config

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

module WEBrick::HTMLUtils

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

module WEBrick::HTTPAuth

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

module WEBrick::HTTPAuth::Authenticator
module WEBrick::HTTPAuth::ProxyAuthenticator

このモジュールはプロキシのためにダイジェスト認証とベーシック認証の両方 の一般的なサポートを提供します。

module WEBrick::HTTPAuth::UserDB

WEBrick::HTTPAuth::BasicAuth, WEBrick::HTTPAuth::DigestAuth で使用しているモジュールです。

module WEBrick::HTTPStatus

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

module WEBrick::HTTPUtils

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

module WEBrick::Utils

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

例外クラス

class Errno::ECONNABORTED

接続が中止された (POSIX.1)

class Errno::ECONNRESET

接続がリセットされた (POSIX.1)

class Errno::EPROTO

プロトコル・エラー (POSIX.1)

class WEBrick::AccessLog::AccessLogError

指定されたアクセスログの形式が正しくない場合に発生します。

class WEBrick::HTTPServlet::HTTPServletError

ユーザが作成したサーブレット内で例外を発生させるときに使うと便利かもし れません。

class WEBrick::HTTPStatus::EOFError
class WEBrick::HTTPStatus::Status

HTTP のステータスコードの親クラスです。

  class WEBrick::HTTPStatus::Error

HTTP のステータスコードエラーの親クラスです。

   class WEBrick::HTTPStatus::ClientError

HTTP のステータスコードクライアントエラー 4XX の親クラスです。

    class WEBrick::HTTPStatus::BadRequest

HTTP のステータスコード 400 Bad Request を表すクラスです。

    class WEBrick::HTTPStatus::Conflict

HTTP のステータスコード 409 Conflict を表すクラスです。

    class WEBrick::HTTPStatus::ExpectationFailed

HTTP のステータスコード 417 Expectation Failed を表すクラスです。

    class WEBrick::HTTPStatus::Forbidden

HTTP のステータスコード 403 Forbidden を表すクラスです。

    class WEBrick::HTTPStatus::Gone

HTTP のステータスコード 410 Gone を表すクラスです。

    class WEBrick::HTTPStatus::LengthRequired

HTTP のステータスコード 411 Length Required を表すクラスです。

    class WEBrick::HTTPStatus::MethodNotAllowed

HTTP のステータスコード 405 Method Not Allowed を表すクラスです。

    class WEBrick::HTTPStatus::NotAcceptable

HTTP のステータスコード 406 Not Acceptable を表すクラスです。

    class WEBrick::HTTPStatus::NotFound

HTTP のステータスコード 404 Not Found を表すクラスです。

    class WEBrick::HTTPStatus::PaymentRequired
    class WEBrick::HTTPStatus::PreconditionFailed

HTTP のステータスコード 412 Precondition Failed を表すクラスです。

    class WEBrick::HTTPStatus::ProxyAuthenticationRequired

HTTP のステータスコード 407 Proxy Authentication Required を表すクラスです。

    class WEBrick::HTTPStatus::RequestEntityTooLarge

HTTP のステータスコード 413 Request Entity Too Large を表すクラスです。

    class WEBrick::HTTPStatus::RequestRangeNotSatisfiable

HTTP のステータスコード 416 Requested Range Not Satisfiable を表すクラスです。

    class WEBrick::HTTPStatus::RequestTimeout

HTTP のステータスコード 408 Request Timeout を表すクラスです。

    class WEBrick::HTTPStatus::RequestURITooLarge

HTTP のステータスコード 414 Request-URI Too Long を表すクラスです。

    class WEBrick::HTTPStatus::Unauthorized

HTTP のステータスコード 401 Unauthorized を表すクラスです。

    class WEBrick::HTTPStatus::UnsupportedMediaType

HTTP のステータスコード 415 Unsupported Media Type を表すクラスです。

   class WEBrick::HTTPStatus::ServerError

HTTP のステータスコードサーバエラー 5XX の親クラスです。

    class WEBrick::HTTPStatus::BadGateway

HTTP のステータスコード 502 Bad Gateway を表すクラスです。

    class WEBrick::HTTPStatus::GatewayTimeout

HTTP のステータスコード 504 Gateway Timeout を表すクラスです。

    class WEBrick::HTTPStatus::HTTPVersionNotSupported

HTTP のステータスコード 505 HTTP Version Not Supported を表すクラスです。

    class WEBrick::HTTPStatus::InternalServerError

HTTP のステータスコード 500 Internal Server Error を表すクラスです。

    class WEBrick::HTTPStatus::NotImplemented

HTTP のステータスコード 501 Not Implemented を表すクラスです。

    class WEBrick::HTTPStatus::ServiceUnavailable

HTTP のステータスコード 503 Service Unavailable を表すクラスです。

  class WEBrick::HTTPStatus::Info

HTTP のステータスコード情報提供 1XX の親クラスです。

   class WEBrick::HTTPStatus::Continue

HTTP のステータスコード 100 Continue を表すクラスです。

   class WEBrick::HTTPStatus::SwitchingProtocols

HTTP のステータスコード 101 Switching Protocols を表すクラスです。

  class WEBrick::HTTPStatus::Redirect

HTTP のステータスコード転送 3XX の親クラスです。

   class WEBrick::HTTPStatus::Found

HTTP のステータスコード 302 Found を表すクラスです。

   class WEBrick::HTTPStatus::MovedPermanently

HTTP のステータスコード 301 Moved Permanently を表すクラスです。

   class WEBrick::HTTPStatus::MultipleChoices

HTTP のステータスコード 300 Multiple Choices を表すクラスです。

   class WEBrick::HTTPStatus::NotModified

HTTP のステータスコード 304 Not Modified を表すクラスです。

   class WEBrick::HTTPStatus::SeeOther

HTTP のステータスコード 303 See Other を表すクラスです。

   class WEBrick::HTTPStatus::TemporaryRedirect

HTTP のステータスコード 307 Temporary Redirect を表すクラスです。

   class WEBrick::HTTPStatus::UseProxy

HTTP のステータスコード 305 Use Proxy を表すクラスです。

  class WEBrick::HTTPStatus::Success

HTTP のステータスコード成功 2XX の親クラスです。

   class WEBrick::HTTPStatus::Accepted

HTTP のステータスコード 202 Accepted を表すクラスです。

   class WEBrick::HTTPStatus::Created

HTTP のステータスコード 201 Created を表すクラスです。

   class WEBrick::HTTPStatus::NoContent

HTTP のステータスコード 204 No Content を表すクラスです。

   class WEBrick::HTTPStatus::NonAuthoritativeInformation

HTTP のステータスコード 203 Non-Authoritative Information を表すクラスです。

   class WEBrick::HTTPStatus::OK

HTTP のステータスコード 200 OK を表すクラスです。

   class WEBrick::HTTPStatus::PartialContent

HTTP のステータスコード 206 Partial Content を表すクラスです。

   class WEBrick::HTTPStatus::ResetContent

HTTP のステータスコード 205 Reset Content を表すクラスです。

class WEBrick::ServerError
  class WEBrick::HTTPServerError

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

webrick/accesslog

WEBrick::HTTPServer のアクセスログの形式を処理するために内部で使われるライブラリです。

webrick/compat

プラットフォーム間の互換性を確保するためのライブラリです。

webrick/config
webrick/cookie
webrick/htmlutils

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

webrick/httpauth

ユーザ認証の機能を提供するライブラリです。

webrick/httpauth/authenticator

HTTP 認証で利用するモジュールを提供するライブラリです。

webrick/httpauth/basicauth

HTTP の Basic 認証のためのライブラリです。

webrick/httpauth/digestauth

HTTP の Digest 認証のためのライブラリです。

webrick/httpauth/htdigest

Apache の htdigest 互換機能を提供するライブラリです。

webrick/httpauth/htgroup

Apache で証認に使用するユーザグループの一覧が格納されているテキストファイルを 読み書きする機能を提供するライブラリです。

webrick/httpauth/htpasswd

Apache の htpasswd 互換のクラスを提供するライブラリです。

webrick/httpauth/userdb
webrick/httprequest

HTTP リクエストのためのクラスを提供するライブラリです。

webrick/httpresponse

HTTP のレスポンスを表すためのクラスを提供するライブラリです。

webrick/httpserver

HTTP サーバの機能を提供するライブラリです。

webrick/httpservlet

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

webrick/httpservlet/abstract
webrick/httpservlet/cgihandler

CGI を扱うためのサーブレットを提供するライブラリです。

webrick/httpservlet/erbhandler

ERB を扱うためのサーブレットを提供するライブラリです。

webrick/httpservlet/filehandler

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

webrick/httpservlet/prochandler

Proc を扱うためのサーブレットを提供するライブラリです。

webrick/httpstatus

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

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

サブライブラリ

webrick/cgi

一般の CGI 環境で webrick ライブラリのサーブレットと同じように CGI スクリプトを書くための ライブラリです。サーバが WEBrick でなくても使うことが出来ます。

webrick/httpproxy

プロクシの機能を提供するライブラリです。CONNECT メソッドにも対応しています。

webrick/https

WEBrick::HTTPServer を SSL/TLS に対応させるための実装。 このファイルを Kernel.#require すると WEBrick::HTTPServer が SSL/TLS 対応になります。

webrick/ssl

WEBrick::GenericServer を SSL/TLS に対応させるための実装。 このファイルを require すると WEBrick::GenericServer が SSL/TLS 対応になる。

library webrick