{"id":15047183,"url":"https://github.com/magnitopic/webserv","last_synced_at":"2026-01-28T12:08:45.062Z","repository":{"id":216706536,"uuid":"741384962","full_name":"magnitopic/webserv","owner":"magnitopic","description":"HTTP server in C++ 98","archived":false,"fork":false,"pushed_at":"2024-03-20T06:59:12.000Z","size":2811,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-04T05:54:03.365Z","etag":null,"topics":["42-cursus","42webserv","cgi","cplusplus","cpp","cpp98","http-server","io-multiplexing","nginx","non-blocking","python","python-cgi","socket-io","socket-programming","webserv","webserver"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magnitopic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-01-10T09:34:52.000Z","updated_at":"2024-04-12T08:51:10.000Z","dependencies_parsed_at":"2024-01-22T12:29:43.603Z","dependency_job_id":"9ae0d560-abd4-4e85-b251-4de97509bd1e","html_url":"https://github.com/magnitopic/webserv","commit_stats":null,"previous_names":["magnitopic/webserv"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/magnitopic/webserv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magnitopic%2Fwebserv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magnitopic%2Fwebserv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magnitopic%2Fwebserv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magnitopic%2Fwebserv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magnitopic","download_url":"https://codeload.github.com/magnitopic/webserv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magnitopic%2Fwebserv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28845107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T10:53:21.605Z","status":"ssl_error","status_checked_at":"2026-01-28T10:53:20.789Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["42-cursus","42webserv","cgi","cplusplus","cpp","cpp98","http-server","io-multiplexing","nginx","non-blocking","python","python-cgi","socket-io","socket-programming","webserv","webserver"],"created_at":"2024-09-24T20:55:06.938Z","updated_at":"2026-01-28T12:08:45.028Z","avatar_url":"https://github.com/magnitopic.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Webserv\n\nThis project is about writing your own HTTP server.\n\nBeing able to understand how the HTTP protocol works is a fundamental skill for web developers. This project will help you understand what happens when you type an address into your browser and press enter.\n\n\u003cimg width=\"1000\" alt=\"webserv-example\" src=\"https://github.com/magnitopic/webserv/assets/21156058/38603f9a-7fd1-4635-b4aa-1b6f14dcfc5b\"\u003e\n\n# Team work 💪\n\nThis project was done alongside `Javier Sarabia`(JaviBurn).\nCheck him and his work out at these links:\n\n-   [LinkedIn](https://www.linkedin.com/in/javier-sarabia-224580195)\n-   [GitHub](https://github.com/javiburn)\n-   [42Intra](https://profile.intra.42.fr/users/jsarabia)\n\n# Program\n\n## Initial installation and compilation\n\n```bash\ngit clone https://github.com/magnitopic/webserv.git\ncd webserv\nmake\n```\n\n## Execution\n\nThe program take's a configuration file as argument. If none is provided the default configuration file is `./webserv.conf`.\n\n```bash\n./webserv [config_file]\n```\n\n## Configuration file\n\nThe configuration file is a simple text file that contains the server's configuration. It's composed of a series of blocks, each one representing a server. Each block is composed of a series of directives.\n\nExample configuration files can be found in the root of the repository.\n\n# Stress test\n\nYou can test the servers performance by running the `siege` command. This command will send a series of requests to test the server's performance.\n\n```bash\nsiege -b http://localhost:8080\n```\n\n# Open ports\n\nThe server will open a socket for every port specified in the configuration file.\nYou can check it has opened the ports by running the example script `open_ports.sh`:\n\n\u003e **_NOTE:_** This script checks ports `8080` and `8082`. You can add your own ports to the script.\n\n```bash\n./open_ports.sh\n```\n\n# Pages directory\n\nThe pages directory of the repository contains example pages that can be accessed by the server. You can add your own pages to this directory and access them through the server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagnitopic%2Fwebserv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagnitopic%2Fwebserv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagnitopic%2Fwebserv/lists"}