Webserv.en.subject.pdf
WebServ
Useful link
All the specifications for this projects are explained in the linked PDF.
The goal of this project is to implement a basic HTTP Web Server capable of handling multiple clients requests
The point of this Notion page is to consolidate the gathered information used for this project and document the progression.
<aside>
⚠️ Directives
</aside>
- This project must be written in C++98
- No external libraries, Boost, etc. allowed
- We will consider that Nginx is HTTP 1.1 compliant and may be used to compare
headers and answer behaviors.
- Poll, select, kqueue, and epoll are all allowed
- Sockets must be non-blocking and use only 1 method of those mentioned above
- The used method MUST check read and write at the same time
- Checking the value of errno after after a read or a write is FORBIDDEN
- A request to the server should never hang forever
- The server should have default error pages if none are provided
- The server should not leak and should never crash, (even when out of memory
if all the initialization is done)