About 
Note: as httpico's replacement horde is now close to subsuming all of httpico's capabilities, use of httpico for new installations is not recommended.
httpico is a small, hacky http server for Unix-like systems such as Linux.
It was written in C, by Edward Cree (aka soundnfury).
The logo was made with GIMP.
It isn't standards-compliant, but it should work, most of the time - and it is getting nearer to the standard.
It's not mature, and there are far better httpds out there, but just in case you want to play around with a lightweight http server with a little bit of dynamic capability, you can download the tarball (or get it from sourceforge); it's gzipped to 21kB, and uncompressed it comes to 90kB - and that includes a stats analyser and a 15kB readme. The actual C source to httpico is 1580 lines.
Distinguishing Features
httpico recognises a few special tags which you can inline into html pages, to provide dynamic information.
For instance, it replaces "<?pico useragent>" with "CCBot/1.0 (+http://www.commoncrawl.org/bot.html)".
Then there's "<?pico stats="pages_served">" -- goes to "[error]" -- and a few others.
One of the really pleasing ones is "<?pico uptime">", "horde: 46 days, 23:39:29 | system: 59 days, 21:15:41" (pleasing for me because I'm on Linux, so the number is usually fairly large)
The log-viewing feature ("<?pico log="filename">") could be used to view arbitrary files (so best not use dynamically generated html from some other source, else people could inline <?pico log="/etc/passwd"> or something like that)
Another part of the httpico project is genstats, which is basically a traffic analyser tailored to work with httpico.
Known Bugs
In the past, certain files have caused <?pico> tags to crash service processes; however, this appears to be fixed now. Also, it was never dynamic enough to provide an attack vector.
There have been a few segfaults; many of these have been solved, but there's a possibility of continuing issues. (The biggest problem, in case you're interested, was an error malloc()ing the lines for the logfile, which resulted from C's ternary '?:' operator grabbing more of an expression than it was meant to. Fixed now, with judicious use of parens)
Many HTTP-Headers are ignored, including the Keep-Alive: header.
httpico copes fairly well with multiple concurrent requests; it forks a separate service process for each request. However, this is not optimal, and during periods of heavy load you might notice slowness, especially due to a self-imposed limit of 10ms between successive responses being sent.
Only the GET and HEAD methods are supported.
Served by horde 0.0.7-5-gddfb26e / pico 0.0.6 at 20:08:28 GMT on Wednesday, 16 May 2012.