/WebServ

🚀 HTTP/1.1 Protocol compliant and resilient server, based on Nginx. 🌐 Supports CGI, session/cookies, GET, POST, and DELETE methods. 🔄 Non-blocking server, even when running blocking CGI scripts. Created with my awesome mates: @rayankb92 👨 and @nxoo971 👨

Primary LanguageC++

# Preview of Project !

202310020258.1.mp4

# Final score : 125/100 ✅

animated


WebServ 🚀

◦ HTTP/1.1 Protocol compliant and resilient server, based on Nginx. 🌐

◦ Developed with the software and tools below.

HTML5 PHP Python Markdown

GitHub top language GitHub code size in bytes GitHub commit activity GitHub license

📂 Repository Structure

└── WebServ/
    ├── Makefile
    ├── README.md
    ├── classes/
    │   ├── FileReader/
    │   │   └── FileReader.cpp
    │   ├── HttpServer/
    │   │   └── HttpServer.cpp
    │   ├── LibHelp/
    │   │   └── LibHelp.cpp
    │   ├── Location/
    │   │   └── Location.cpp
    │   ├── Logs/
    │   │   └── logs.cpp
    │   ├── Page/
    │   │   └── Page.cpp
    │   ├── Parser/
    │   │   ├── Cgi.cpp
    │   │   ├── Delete.cpp
    │   │   ├── Get.cpp
    │   │   ├── Methods.cpp
    │   │   ├── Parser.cpp
    │   │   ├── Post.cpp
    │   │   └── setters.cpp
    │   └── Stream/
    │       ├── Client.cpp
    │       ├── Server.cpp
    │       └── Stream.cpp
    ├── config/
    │   └── config.cfg
    ├── includes/
    │   ├── FileReader/
    │   │   └── FileReader.hpp
    │   ├── HttpServer/
    │   │   └── HttpServer.hpp
    │   ├── LibHelp/
    │   │   └── LibHelp.hpp
    │   ├── Location/
    │   │   └── Location.hpp
    │   ├── Page/
    │   │   └── Page.hpp
    │   ├── Parser/
    │   │   ├── Cgi.hpp
    │   │   ├── Delete.hpp
    │   │   ├── Get.hpp
    │   │   ├── Methods.hpp
    │   │   ├── Parser.hpp
    │   │   └── Post.hpp
    │   ├── Stream/
    │   │   ├── Client.hpp
    │   │   ├── Server.hpp
    │   │   └── Stream.hpp
    │   └── main.hpp
    ├── main.cpp
    ├── mimtype.txt
    └── var/
        ├── downloads/
        │   └── file.jpg
        └── www/
            ├── 403.html
            ├── 404.html
            ├── TestCGI/
            │   ├── display.php
            │   ├── form.html
            │   ├── form.py
            │   └── index.html
            ├── cgi_tester
            ├── cookieSite/
            │   ├── cookie.php
            │   ├── form.html
            │   ├── index.php
            │   └── save.php
            ├── dieri/
            │   ├── dieriba.html
            │   └── style.css
            ├── index.html
            ├── index.php
            ├── index1.html
            ├── site1/
            │   ├── display.py
            │   ├── index.html
            │   ├── index.php
            │   ├── request.php
            │   └── test.php
            └── site2/
                ├── index.html
                └── upload.php

🔧 Installation

  1. Clone the WebServ repository:
git clone https://github.com/mousliiim/WebServ WebServ
  1. Change to the project directory:
cd WebServ
  1. Do make:
Make all

🤖 Running WebServ

./webserv [configfile] ( Exemple : ./webserv config/config.cfg )

🤝 Contributing

Contributions are always welcome! Please follow these steps:

  1. Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
  2. Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
  3. Create a new branch with a descriptive name (e.g., new-feature-branch or bugfix-issue-123).
git checkout -b new-feature-branch
  1. Make changes to the project's codebase.
  2. Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
  1. Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
  1. Create a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.