Project Overview
This project is a low-level multithreaded web server implemented in Python as part of a networking course, designed to explore how HTTP servers handle concurrent client connections at the socket and process level.
Rather than relying on existing frameworks, the server is built directly on TCP/IP sockets, providing hands-on experience with request handling, concurrency, and process management in Unix-like systems.
Key Features
- TCP/IP server implemented using Python’s
socketlibrary - Concurrent request handling via process forking (
fork()) - Basic HTTP request parsing and response handling
- Support for multiple simultaneous client connections
Technical Implementation
The server establishes a TCP socket, listens for incoming connections, and spawns a separate process for each request using the system’s fork() call. This approach enables concurrent handling of multiple clients while illustrating the tradeoffs of process-based concurrency.
The implementation focuses on clarity and correctness over abstraction, exposing the mechanics behind request lifecycles, blocking I/O, and basic HTTP semantics.
What This Demonstrates
- Understanding of network protocols and TCP/IP fundamentals
- Practical experience with concurrency and process management
- Familiarity with HTTP at the protocol level, not just via frameworks
- Ability to reason about performance, scalability, and system tradeoffs
Why This Matters
While modern applications rely on higher-level frameworks, understanding how web servers work under the hood is critical for building reliable, performant systems. This project laid the foundation for later work designing and operating production-grade backend systems and APIs.
Related Projects
Cybersecurity Research
Analyzing and simulating Mirai botnet traffic to identify network-level fingerprints for early attack detection.
RSA Encryption in Python
From-scratch RSA implementation in Python, focusing on cryptographic fundamentals and secure key generation.