# status

quite useful, has been in production for quite some time.

# intro

shttpd is a simple httpd.


- http/1.0, http/1.1 (keep-alive, chunked responses).  no "http/0.9".
- cgi and scgi support
- virtual hosts
- determining content-type based on file extension
- error/access logging
- index file serving, html directory listings
- http basic authentication
- "range" requests, for random access to files
- redirections with regular expressions
- configuration in attrdb format
- as compliant as possible, where reasonable
- mindful of security

see the manual page for full documentation

# download

get the latest version from:


# install

first make sure you have "http", the http library installed, see

make sure you have $ROOT set, now "mk install" to compile and install
the files.

when building from within inferno, insert SYSHOST=Inferno and ROOT=
in the mk invocations to override the values in the mkconfig.

# licence

all files written by me (i.e. all except the rfcs in doc/) are
in the public domain.  for bugs, questions, comments, etc., contact
me at mechiel@ueber.net.

# non-features

some features will not be implemented.  for example:

- connection rate limiting.  should be done at a higher level, e.g. firewall.

# testing/todo

doc/testing.txt can be used for testing.  it has to be done manually,
enough corner cases have not been tested, but quite a few have.


- when responding with chunked data, can we embed an error message in a chunks comment-part when an error with reading the data occurs?
- support transfer-encoding chunked and compressed content-encodings from client?
- check for security issues with http
- think of ssl?
- try to fix dir listings for paths with multiple slashes in them.  firefox breaks on them, is firefox right?
- test with other browsers