# http-server http-server is a simple http server that does not conform to any standards. It's main purpose is for experimentation: both playing around with HTTP quirks and simple socket programming under Linux. ## Versions The current master branch version is epoll based, but a traditional iterative version was tagged as `traditional-iterative` (use `git show traditional-iterative` to view more information about it). ## Requirements I have tested building the program with the following compilers: - gcc 8.3.0 - gcc 9.1.0 - clang 8.0.0 The build process requires `make`. Testing (`make tests`) uses `curl` of which I used `curl 7.65.1`. ## Building Run `make all`. ## Running Run `make check` or change directory to the `bin/` directory and run the server binary yourself (most likely `./server.out`). You probably want to create a subfolder in `bin/` to serve as root for the webserver (i.e. a directory it will serve static files from). By default it looks for `./www/` in its working directory. The default behaviour of the webserver is to serve `/index.html` when it gets a request ending with `/`, e.g. `/mydirectory/` will have the webserver search for the file `./www/mydirectory/index.html` (by default this would translate to `bin/www/mydirectory/index.html` as seen from the repository root). The webserver currently is not configurable, despite there being a `bin/server.cfg` file. This file is simply ignored for now.