Boa is a single-tasking HTTP server. That means that unlike traditional Web servers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections, and forks only for CGI programs (which must be separate processes), automatic directory generation, and automatic file gunzipping. Tests show boa is capable of handling up to several hundred hits per second on a 100 Mhz Pentium, dozens of hits per second on a lowly 20 MHz 386/SX, and thousands on more powerful CPUs.
|Tags||Internet Web HTTP Servers|
Release Notes: This is primarily a "clean up" release, which means that most of the changes made are to improve the overall quality of the code, without introducing many new features. Some bugfixes were made and some new features were added, but the main changes were made to improve error checking for system calls and memory allocations.
Release Notes: Lots of changes, some bugfixes, and some new features.
Release Notes: This release prevents the encoding of / and .. in pathnames, wraps execution of gunzip in cgi.c if defined, and no longer parses when a fragment is found in the URL ('#').
Release Notes: Fixes for the temporary file permissions and POST problems, pipes are now closed in the child fork, minor changes to the Debian package, HTTP_REFERER variable is now implemented in cgi.c, and a maximum number of active connections has been implemented to prevent running out of file descriptors.
Release Notes: Removal of doc++ commenting and erroneous debugging statments, moved some stuff out of config.c (read_config_file) to boa.c, alterations to fixup_server_root(), and a bugfix in get.c regarding automatic gunzip.