Webserv aims to create a fully functional web server written in C++98.
- The primary role of the web server is to store, process and deliver requested information to the end users.
- By building a web server, we could gain a deep understanding of the HTTP protocol, websockets and the Common Gateway Interface (CGI).
- C++98
- Python3
- HTML5
- CSS
- HTTP requests: GET, POST, DELETE
- File upload via POST request
- CGI - displaying a page via the python interpreter
- Directory listing
Requirements are:
- C++98
- Python3 (/usr/local/bin/python3)
- Mozilla Firefox
- Config file
make && ./webserv data/conf/default.conf
Or after make, provide your own custom .conf file.
make && ./webserv you_own_conf_file
- What is a socket
- Dealing With and Getting Around Blocking Sockets
- HTTP Made Really Easy Structure of HTTP transactions
- Sample HTTP Exchange
- Diagram for server
- Lecture that explains sockets pretty well with examples (no clue how this ended up in my google search 😬)
- Struct used in lecture
- Socket/Client applications
- Web Server Concepts and Examples
- Mozilla HTTP Requests & Responders
- Mozilla HTTP Forwarding
- Very clear Poll() guide