rhttpd is a small webserver which tries to be a bit flexible
and fast in handling HTTP transactions.
at the moment rhttpd only servers static files, later there
maybe a interface to some cgi backend (eg. fastcgi).
current working features
- epoll() driven event handler to deal with the descriptors
- inotified stat cache to avoid frequent stat() calls.
if you want to read, i wrote down my notes about inotify.
- mime type support based on multiple filename extensions (html.de.gz).
mime type lookups are automatically cached in stat() stuff
- generic handler interface
- directory based virtual host support
- optimized http header parser
- conditional requests
(If-Match,
If-Modified-Since,
If-None-Match)
- index filenames for "directory/" requests (eg: index.html)
- logging (error,access)
planned features
- flexible config handling
- better handler support
- cached directory indexing
- memory cache to avoid malloc(),free()
known bugs
at the moment i know no bug which let the server
segfault or doing something other strange (thanks
valgrind!).
there are a lot logical (eg: http related) bugs or missing features.
if you found a bug please tell me
in a useable kind.
note: rhttpd currently only compiles and runs on
linux 2.6
rhttpd is licensed under the GNU GPLv2.
feel free to send
constructive comments about rhttpd, i will be thankful.
contact