A lightweight HTTP server built in C++ using the Mongoose networking library. This project demonstrates how backend servers handle client requests, process them, and return responses efficiently.
This project explores system-level backend development in C++ by working with an HTTP server architecture. It focuses on understanding request-response flow, networking abstractions, and backend server design.
- C++
- Mongoose (Networking Library)
- HTTP Protocol
- Basic Multithreading Concepts
- Handles HTTP requests and sends responses
- Implements request parsing and response generation
- Basic routing for handling endpoints
- Logging for incoming requests
- Lightweight and efficient design
- Server initializes event manager using Mongoose
- Listens on a specified port
- Receives HTTP requests
- Processes requests in handler function
- Sends HTTP response back to client
Client → HTTP Request → Server (Mongoose) → Handler Function → Response → Client
git clone https://github.com/YOUR_USERNAME/cpp-multithreaded-http-server.git
cd cpp-multithreaded-http-serverg++ example.cpp RESTserver/mongoose.c RESTserver/RESTserver.cpp -o server./serverOpen: http://localhost:8000
- Uses Mongoose to abstract low-level socket handling
- Thread pool implementation exists in the codebase but may require compatible compiler support
- Focus of this project is understanding HTTP server behavior and request handling
- How HTTP servers process requests internally
- Request-response lifecycle
- Role of networking libraries like Mongoose
- Basics of concurrency and thread pool design
- Enable full thread pool support
- Enhance routing system
- Add performance benchmarking
- Improve concurrency handling
Uppala Shlesha