Skip to content

This project is about writing our own HTTP server and test it with an actual browser.

Notifications You must be signed in to change notification settings

dridslash/Web_server

Repository files navigation

WEBSERV

Webserv Description

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

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.

fetching_a_page

Request

http_request

Reponse

http_response

Features implemented

webserv-request-flow

Resources for multiplexing using kqueue

  1. https://people.freebsd.org/~jlemon/papers/kqueue.pdf
  2. https://habr.com/ru/articles/600123/
  3. https://freebsdfoundation.org/wp-content/uploads/2014/05/Kqueue-Madness.pdf
  4. https://blog.csdn.net/Timeinsist/article/details/80978713

RFCS for implementing HTTP Protocol

  1. https://www.rfc-editor.org/rfc/rfc7230
  2. https://www.rfc-editor.org/rfc/rfc7231
  3. https://www.rfc-editor.org/rfc/rfc7232
  4. https://www.rfc-editor.org/rfc/rfc7233
  5. https://www.rfc-editor.org/rfc/rfc7234
  6. https://www.rfc-editor.org/rfc/rfc7235

CGI

What is CGI?

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.

68747470733a2f2f69312e61652f696d672f776562736572762f4347492e6a7067 (1)

Credits

Oussama Ouazize
Mohamed Khalil Naqqad

About

This project is about writing our own HTTP server and test it with an actual browser.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published