SimpleHttpd

SimpleHttpd is the web server that runs this web site. Why did I decided to write my own web server? Masochism perhaps.

It's been an interesting exercise, one I'd not repeat. I think SimpleHttpd is a nice implementation of a Java based web server. It's no speed daemon, but it is simple and flexible, and the code is (hopefully) easy to understand. I think it fills a niche between the bloated and complex implementations (JigSaw) and the simplistic multithreaded demos that are a dime a dozen on the net.

SimpleHttpd is now available in source and compiled format: SimpleHttpd src/binary in .zip format

Current SimpleHttd's features include:

  • Nominally Http 1.1 compliant
  • Gzip compression of requests (even dynamic and CGI generated HTML)
  • Subsest of CGI 1.1 protocol (it's at least enough to get PHP running)
  • Simple Http Service (Servlet) API
  • GET, HEAD, POST methods supported
  • SSL (HTTPS)
  • Logging
  • Directory listing
  • Basic server side includes (only "#include virtual=" supported) - nested includes supported as well
  • Modular design. Most components are written to the Service API and can be disabled
  • No configuration file required.
  • Simple configuration file format for more complex configurations
  • Session support for Services (via Cookies, URL re-writing yet to come)
© 2003, 2004, 2005. All rights reserved.