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)