webserv is a 42/Codam project about writing our own HTTP server in C++
This is a collaborative project between nhariman, salbregh, and mjiam.
This is a simple HTTP/1.1 web server that can handle GET, POST, and DELETE requests.
Our webserver uses the same non-blocking, event-driven architecture that nginx does. This allows the server to handle a high amount of requests with speed.
We use kqueue
to handle the multiplexing, which means the server can only run on Mac machines.
Detailed project specifications can be found here.
The server settings are configured through a .conf
configuration file based on Nginx. The list of accepted directives can be found here.
From the root of the repo, run make && ./webserv
to build and start the web server.
The webserv
executable takes an optional configuration file argument:
$ ./webserv [your_config_file.conf]
Otherwise the web server defaults to using the settings in config_files/default.conf
.
The web server can be interfaced with through any browser or tools like curl and telnet.
If using the default configuration, navigating to localhost
on port 80 (default), 4242, and 8080 showcases 3 different websites with different configuration settings.
- Standard functionality
- Internal and external redirects
- Custom error pages
- Autoindexing
We made a wiki containing information about:
google_test
folder.Michelle Jiam - LinkedIn / Github
Sanne Albreghs - LinkedIn / Github
Niks Hariman - LinkedIn / Github