A multi-threaded HTTP server written from scratch in Java — no frameworks, no dependencies.
Implements a basic HTTP/1.1 server with:
- Server.java — Accepts connections on a configurable port, spawns a new ClientThread per request, handles graceful shutdown
- HTTPRequest.java — Parses raw HTTP headers, request method, URL, and multipart form data
- ResponseFactory.java — Routes GET and POST requests, returning proper HTTP status codes (200, 302, 403, 404, 500)
- Response objects organized by status with clean separation of concerns
Supports static file serving, file upload via POST, and a hardcoded redirect example.
Java, ServerSocket, multi-threading, raw HTTP protocol parsing
Group project — built to understand what happens beneath web frameworks.