The project involves creating a basic web server from scratch that is capable of handling HTTP requests and serving static files. The server must support HTTP methods, status codes, MIME types, concurrent connections, and request headers.
HTTP is an extensible protocol that relies on concepts like resources and Uniform Resource Identifiers (URIs), simple message structure, and client-server communication flow. On top of these basic concepts, numerous extensions have been developed over the years that add updated functionality and semantics with new HTTP methods or headers. this project is about writing our own HTTP server and testing it with an actual browser.
- https://people.freebsd.org/~jlemon/papers/kqueue.pdf
- https://habr.com/ru/articles/600123/
- https://freebsdfoundation.org/wp-content/uploads/2014/05/Kqueue-Madness.pdf
- https://blog.csdn.net/Timeinsist/article/details/80978713
- https://www.rfc-editor.org/rfc/rfc7230
- https://www.rfc-editor.org/rfc/rfc7231
- https://www.rfc-editor.org/rfc/rfc7232
- https://www.rfc-editor.org/rfc/rfc7233
- https://www.rfc-editor.org/rfc/rfc7234
- https://www.rfc-editor.org/rfc/rfc7235
The Common Gateway Interface, or CGI, is a standard for external gateway programs to interface with information servers such as HTTP servers. The current version is CGI/1.1 and CGI/1.2 is under progress.