This project is part of the 42 school curriculum. The goal is to implement a web server in C++ which is compatible with the HTTP/1.1 protocol. It should be capable of hosting multiple websites and handling various types of requests.
- HTTP/1.1 compliance
- Handling GET, POST, and DELETE requests
- Ability to host multiple virtual hosts (websites)
- Customizable server configuration via an nginx configuration file
- Support for serving static files
- Error handling with custom error pages
- C++98 compiler
- Unix-like operating system
- Clone the repository:
git clone [email protected]:Antoinecousi/Webserv.git webserv
- Navigate to the project directory:
cd webserv
- Compile the project:
make
- Run the server:
./webserv [configuration_file]
or./webserv
for default config file. - Access the server in a web browser or using a tool like
curl
.
- It is based on the nginx configuration file format.
- Listen directive: Specify the IP and port (e.g.,
listen 127.0.0.1:8080
). - Server name directive: Define server names for virtual hosting.
- Location blocks: Specify how different URIs should be treated.
- Stéphane Payeur
- Jean Baptiste Vermeersch
- Antoine Cousinié