WEBrick

汎用HTTPサーバーフレームワーク。

2003-03-05: <URL:http://www.notwork.org/ipr/cgi-bin/cvsweb.cgi/webrick/lib/webrick/httpproxy.rb?rev=1.16&content-type=text/x-cvsweb-markup> のproxy_connectに

HTTPStaus -> HTTPStatus

というtypo

2002-12-23: H.M: 認証機能を改造してみる

るるるはPowered by WEBrickです。

2002-11-10: 今はRRRWikiだけ?

2002-08-12 NaHi: WEBrick::chunkedリクエストのpatch

Servletについて

WEBrickでは特殊なコンポーネントをURLに結びつけることで そのURLに対する処理を拡張できます。このコンポーネントを Servletと言います。

例: (<URL:http://www.notwork.org/ipr/webrick/>から) *1

#!/usr/local/bin/ruby
require 'webrick'
include WEBrick

s = HTTPServer.new( :Port => 2000 )

# HTTPServer#mount(path, servletclass)
# s.mount('/hello', HelloServlet)すると'/hello'という(相対)URLに対する
# GETリクエストを受けるとHTTPServerはHelloServletのdo_GETに処理を委譲します。

class HelloServlet < HTTPServlet::AbstractServlet
  def do_GET(req, res)
    res.body = "<HTML>hello, world.</HTML>"
    res['Content-Type'] = "text/html"
  end
end
s.mount("/hello", HelloServlet)

trap("INT"){ s.shutdown }
s.start

WEBrickには普通のHTTPサーバーがやっている処理と同様の機能を提供するServlet としてFileHandlerが用意されているので、これと自分で書いたServletを組み合わ せるとお手軽に特別な機能をもつHTTPサーバーが作れます。

Servlet Archive

FileHandler

標準添付です。Apacheみたいな普通のHTTPサーバーがやっている機能とほぼ 同じ機能を提供しています。特に、

  • CGIサポート(CGIHandler)
  • eRubyサポート(ERbHandler)

FileHandlerはXXXHandlerというサブコンポーネントを追加して新しいファイル タイプ(拡張子)に対する特殊な処理を追加することができます。Handlerを追加 するには次のようにします。

FileHandler.add_handler("cgi", CGIHandler)
FileHandler.add_handler("rhtml", ERbHandler)
SOAPlet -- NaHiさん

SOAP4RによるWebサービスを提供するための枠になるServlet。

RWikilet -- NaHiさん

RWikiをCGIを使わずに使うためのインターフェイスServlet。

Tofu -- さん

Divでセッション管理を提供しているコンポーネントのWEBrick Servlet 版。別にCGI版もあります。Divに付属。

http0serv.rb --

dRuby開発版で書いてみた習作。bodyにdRubyのメッセージをそのまま 詰めるだけだけバージョン。

RWikiViewlet -- Tosh

半分現実逃避に書いたもの。リファレンスマニュアルのRDページアーカイブを ローカルで閲覧するためのものです。

misc.

Reference


*1 簡単のため一部削除/変更しています



The RWiki