julien-ctx / webserv

A C++ implementation of a web server using I/O multiplexing to handle HTTP requests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Webserv: a C++ Web Server | 42

Overview

Webserv is a C++ implementation of a web server that is capable of handling multiple clients simultaneously using I/O multiplexing and non-blocking functions.

Features

  • Parsing of a config file (TOML) to specify different rules for different roots/routes.
  • Up to 128 clients at the same time thanks to kqueue and threads.
  • Handling of the following HTTP methods: GET, POST, DELETE.
  • Error handling for invalid requests with HTTP status codes.
  • File upload through a Python CGI.
  • Support for multiple CGI scripts (Python, Perl, Bash).
  • Server names to specify which hostname should be used to handle a specific request.
  • Cookie session management using Javascript embedded snippets.

Getting Started

You can run the project using the following syntax:

make && ./webserv config/default.TOML

You can change or edit the config file according to your needs.

Then, all you have to do is opening Chrome browser and pasting the address and the port in the URL bar.

Authors

About

A C++ implementation of a web server using I/O multiplexing to handle HTTP requests.


Languages

Language:C++ 74.4%Language:HTML 17.1%Language:CSS 4.9%Language:Python 1.7%Language:Makefile 0.7%Language:Perl 0.6%Language:Shell 0.5%