WebServio is a web server written in C that partially conforms to HTTP/1.1. It can be set to use a multiplexed I/O architecture (all connections simultaneously watched for activity by a single thread) or a multithreaded architecture (each connection is on its own thread). It includes a command-line interface for changing configuration settings.
As with most of my past projects, the purpose of building WebServio was more than to simply build something interesting. It was also to learn new technologies and challenge myself to read published documents from the IETF.
There were five main learning objectives for building WebServio: