{"id":15047184,"url":"https://github.com/h-sarhan/webserv","last_synced_at":"2025-04-10T00:51:02.693Z","repository":{"id":183949263,"uuid":"635528054","full_name":"h-sarhan/webserv","owner":"h-sarhan","description":"An HTTP web server written in C++","archived":false,"fork":false,"pushed_at":"2023-08-06T13:45:09.000Z","size":26117,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T00:50:57.149Z","etag":null,"topics":["42school","cpp98","http-server"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h-sarhan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-02T22:21:12.000Z","updated_at":"2024-06-30T07:31:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"e3b21e7e-fa27-4fa8-b4dd-4bb42473bb4c","html_url":"https://github.com/h-sarhan/webserv","commit_stats":null,"previous_names":["h-sarhan/webserv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-sarhan%2Fwebserv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-sarhan%2Fwebserv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-sarhan%2Fwebserv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h-sarhan%2Fwebserv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h-sarhan","download_url":"https://codeload.github.com/h-sarhan/webserv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137998,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42school","cpp98","http-server"],"created_at":"2024-09-24T20:55:06.957Z","updated_at":"2025-04-10T00:51:02.685Z","avatar_url":"https://github.com/h-sarhan.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\r\n\r\n\r\n\u003c!-- PROJECT LOGO --\u003e\r\n\u003cbr /\u003e\r\n\u003cdiv align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/h-sarhan/webserv\"\u003e\r\n    \u003cimg src=\"assets/logo.png\" alt=\"Logo\" width=\"240\" height=\"240\"\u003e\r\n  \u003c/a\u003e\r\n\r\n\u003ch3 align=\"center\"\u003ewebserv\u003c/h3\u003e\r\n\r\n  \u003cp align=\"center\"\u003e\r\n    An RFC compliant HTTP web server written in C++98\r\n    \u003cbr /\u003e\r\n    \u003cbr /\u003e\r\n    \u003cstrong\u003e42 Abu Dhabi\u003c/strong\u003e\r\n    \u003cbr /\u003e\r\n    \u003ca href=\"https://github.com/mehrinfirdousi\"\u003emfirdous\u003c/a\u003e\r\n    ·\r\n    \u003ca href=\"https://github.com/h-sarhan\"\u003ehsarhan\u003c/a\u003e\r\n  \u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\n\u003c!-- TABLE OF CONTENTS --\u003e\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\r\n  \u003col\u003e\r\n    \u003cli\u003e\r\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\r\n    \u003c/li\u003e\r\n    \u003cli\u003e\r\n      \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\r\n    \u003c/li\u003e\r\n    \u003cli\u003e\r\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\r\n      \u003cul\u003e\r\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\r\n        \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\r\n      \u003c/ul\u003e\r\n    \u003c/li\u003e\r\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\r\n  \u003c/ol\u003e\r\n\u003c/details\u003e\r\n\r\n\r\n\r\n\u003c!-- ABOUT THE PROJECT --\u003e\r\n## About The Project\r\n\r\n![Web Server][product-screenshot]\r\n\r\nThis project is an implementation of an HTTP web server written in C++. The server can handle incoming multiple concurrent requests from web clients and serve them with HTML files or other static resources, such as images or CSS files. The server also supports the HTTP/1.1 protocol, including features such as persistent connections, chunked encoding, and content compression. In addition, the server includes support for dynamic content generation through CGI scripts, allowing developers to write server-side scripts in languages such as Perl or Python.\r\n\r\nThis HTTP web server is a highly reliable implementation that remains stable even under extreme loads and with limited system resources. Its efficient design ensures that the server can handle a large number of incoming requests without crashing or hanging\r\n\r\n\r\n## Features\r\n* Able to handle multiple concurrent requests\r\n* Implements the HTTP protocol including GET, POST, and DELETE requests\r\n* HTTP/1.1 support with persistent connections and chunked encoding\r\n* Static file serving for HTML files, images, and other resources\r\n* CGI script support for dynamic content generation\r\n* Robust and resilient implementation\r\n* Parses a configuration file\r\n* Handles multiple CGIs\r\n* Supports cookies and session management\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n\r\n\u003c!-- GETTING STARTED --\u003e\r\n## Getting Started\r\n\r\n### Prerequisites\r\n\r\nThe only prerequisites for this project are a C++ compiler and the Make build system\r\n\r\nThis project produces no warnings even with strict warning flags on gcc and clang\r\n\r\n* To compile\r\n  ```sh\r\n    make\r\n  ```\r\n\r\n* To run our tests\r\n  ```sh\r\n    make test\r\n  ```\r\n\r\n### Usage\r\n\r\n* To run the web server with default configuration\r\n  ```sh\r\n    ./webserv\r\n  ```\r\n\r\n* To run the web server with a custom configuration\r\n  ```sh\r\n    ./webserv ./server.conf\r\n  ```\r\n\r\n\u003c!-- LICENSE --\u003e\r\n## License\r\n\r\nDistributed under the MIT License. See `LICENSE.txt` for more information.\r\n\r\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\r\n\r\n\r\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\r\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\r\n[stars-shield]: https://img.shields.io/github/stars/h-sarhan/webserv.svg?style=for-the-badge\r\n[stars-url]: https://github.com/h-sarhan/webserv/stargazers\r\n[issues-shield]: https://img.shields.io/github/issues/h-sarhan/webserv.svg?style=for-the-badge\r\n[issues-url]: https://github.com/h-sarhan/webserv/issues\r\n[license-shield]: https://img.shields.io/github/license/h-sarhan/webserv.svg?style=for-the-badge\r\n[license-url]: https://github.com/h-sarhan/webserv/blob/master/LICENSE\r\n[product-screenshot]: https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2018/06/How-Server-Work.webp\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh-sarhan%2Fwebserv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh-sarhan%2Fwebserv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh-sarhan%2Fwebserv/lists"}