mini_httpd - small HTTP server
version 1.30 of 26Oct2018
mini_httpd is a small HTTP server. Its performance is not great, but for
low or medium traffic sites it's quite adequate. It implements all the
basic features of an HTTP server, including:
* GET, HEAD, and POST methods.
* Basic authentication.
* Security against ".." filename snooping.
* The common MIME types.
* Trailing-slash redirection.
* index.html, index.htm, index.cgi
* Directory listings.
* Multihoming / virtual hosting.
* Standard logging.
* Custom error pages.
It can also be configured to do SSL/HTTPS.
mini_httpd was written for a couple reasons. One, as an experiment
to see just how slow an old-fashioned forking web server would be
with today's operating systems. The answer is, surprisingly, not
that slow - on FreeBSD 3.2, mini_httpd benchmarks at about 90% the
speed of Apache. The other main reason for writing mini_httpd was
to get a simple platform for experimenting with new web server
technology, for instance SSL.
See the manual entry for more details.
Files in this distribution:
mini_httpd.c source file for server
mini_httpd.8 manual entry for server
version.h version defines
port.h portability defines
mime_types.txt list of MIME types
htpasswd.c source file for password changer
htpasswd.1 manual entry for password changer
index.html sample index file
To build: If you're on a SysV-like machine (which includes old Linux systems
but not new Linux systems), edit the Makefile and uncomment the SYSVLIBS line.
If you're doing SSL, uncomment those lines too. Otherwise, just do a make.
On Red Hat Linux systems you can use RPM to install mini_httpd, like so:
rpm -ta mini_httpd-1.30.tar.gz
rpm -i /usr/src/redhat/RPMS/i386/mini_httpd-1.30-1.i386.rpm
Feedback is welcome - send bug reports, enhancements, checks, money
orders, etc. to the addresses below.
Jef Poskanzer firstname.lastname@example.org http://www.acme.com/jef/