MedWA3MO / webServ

webserv is a captivating C++ project that delves into the heart of the HTTP protocol, empowering you to build your own robust web server. Embark on a journey where you'll uncover the arcane mysteries behind the ubiquitous http protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

webserv - A Powerful C++ HTTP Server

![webserv banner][]

Introduction

webserv is a comprehensive HTTP server written in C++. This project aims to provide a robust and highly customizable web server that can handle a wide range of HTTP requests and serve various types of content. Whether you're a web developer, a system administrator, or simply curious about the inner workings of the web, this project is designed to offer a valuable learning experience.

Key Features

HTTP 1.1 Compliance: webserv fully implements the HTTP/1.1 protocol, ensuring compatibility with a wide range of clients and compliance with industry standards. Modular and Extensible Design: The server's architecture is designed to be modular and extensible, allowing for easy integration of new features and functionality. Configurable Server Settings: webserv provides a flexible configuration system, enabling users to customize server behavior, such as port number, document root, and more. Asynchronous I/O: The server utilizes an asynchronous I/O model, enabling efficient handling of concurrent client connections and minimizing resource usage. Robust Error Handling: The server includes comprehensive error handling mechanisms, ensuring reliable and informative responses to clients in case of issues. Static and Dynamic Content Serving: webserv can serve both static files (e.g., HTML, CSS, images) and dynamic content generated by CGI scripts. Server-side Scripting Support: The server can execute server-side scripts written in various programming languages, such as PHP, Python, and Ruby, through the use of CGI. Logging and Monitoring: The server provides detailed logging capabilities, allowing administrators to monitor server activity and diagnose issues. Getting Started To get started with webserv, please follow these steps:

Clone the repository: git clone https://github.com/MedWA3MO/webServ.git

Navigate to the project directory: cd webserv
Build the project: make
Run the server: ./webserv [configuration_file] The optional [configuration_file] argument allows you to specify a custom configuration file. If not provided, the server will use a default configuration. Access the server in your web browser: http://localhost:8080
For more detailed information on configuration, usage, and advanced features, please refer to the documentation.

Contributing

We welcome contributions from the community! If you'd like to contribute to webserv, please follow these guidelines:

Fork the repository.

Create a new branch for your feature or bug fix. Implement your changes and ensure they pass all tests. Submit a pull request, providing a clear description of your changes and the problem they solve. Before submitting a pull request, please make sure to review the contribution guidelines for more information.

License

webserv is released under the MIT License. Feel free to use, modify, and distribute the code as per the terms of the license.

Contact

If you have any questions, suggestions, or feedback, feel free to reach out to us

About

webserv is a captivating C++ project that delves into the heart of the HTTP protocol, empowering you to build your own robust web server. Embark on a journey where you'll uncover the arcane mysteries behind the ubiquitous http protocol


Languages

Language:C++ 63.1%Language:HTML 23.8%Language:SCSS 7.0%Language:JavaScript 1.8%Language:Python 1.7%Language:Makefile 1.0%Language:PHP 1.0%Language:CSS 0.7%