Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

04 April, 2007

Webserver-Baukasten

Browser & Betriebssysteme

Webrick müsste allen Rails-Programmierern ein Begriff sein. Was viele nicht wissen, ist das Webrick eine Art Baukasten für Webserver ist. Die Bibliothek ist seit Ruby 1.8 mit im Standardpaket dabei und enthält ein paar ziemlich coole Features: HTTPS, CGI-Support, Authentifizierung mit htpasswd- und diggest-Dateien, empfangen von Formulardatein, direkter zugriff auf Request und Response, und viele weitere.

Mit ein paar Zeilen Code lässt sich schon das erste HalloWelt in den Browser zaubern:

#!/usr/bin/ruby
require 'webrick'
include WEBRick

class HelloServlet < HTTPServlet::AbstractServlet
  def do_GET(req, res)
    res.body = "HelloWorld"
    res['Content-Type'] = "text/html"
  end
end

s = HTTPServer.new(:Port => 8080)
s.mount("/hello", HelloServlet)
trap("INT"){s.shutdown}
s.start

Eine sehr tolle Sache, vor allem für Anwendungen, die eigentlich keinen protzigen Apache benötigen, um simple Ausgaben in den Browser zu setzen. Da ich schon lange eine Art grafische Schnittstelle für das Verwalten von SVN-Repositories basteln will, würde sich dies perfekt anbieten: Den selbstgebauten Webrick-Server startet man bei Bedarf und stößt über den Webbrowser Ruby-Methoden an, die dann die Arbeiten am Dateisystem erledigen.