seHTTPd
implements a small and efficient web server with 1K lines of C code.
I/O multiplexing is achieved using epoll.
- Single-threaded, non-blocking I/O based on event-driven model
- HTTP persistent connection (HTTP Keep-Alive)
- A timer for executing the handler after having waited the specified time
+----------------------------------------------+
| |
| +-----------+ wait +-----------------+ | copy +---------+
| | +----------> +------------> |
| | IO Device | 1 | Kernel's buffer | | 2 | Process |
| | <----------+ <------------+ |
| +-----------+ +-----------------+ | +---------+
| |
+----------------------------------------------+
At the moment, seHTTPd
supports Linux based systems with epoll system call.
Building seHTTPd
is straightforward.
$ make
./sehttpd
./sehttpd -p 8082
Specify the port number with -p
flag, by default the server accepts connections on port 8081.
./sehttpd -w ./www
Specify the web root with -w
flag, by default the web root is "./www".
seHTTPd
is released under the MIT License. Use of this source code is governed
by a MIT License that can be found in the LICENSE file.