Built from absolute scratch - Pure Python, vanilla JavaScript, and HTML/CSS. No Express, No React, No Flask, No databases.
- 100% Framework-Free Backend: Raw Python sockets, manual HTTP parsing, custom routing
- Pure Vanilla Frontend: Zero JavaScript frameworks - just DOM manipulation and fetch API
- Custom Database: JSON-based ORM built from scratch with auto-persistence
- Manual HTTP Protocol: Hand-crafted request/response handling
- Async Non-blocking Server: Built with Python
select
for concurrent connections
This project was my learning of low-level web fundamentals:
- Understanding HTTP protocol from ground up
- Socket programming and network communication
- Building database abstractions without ORMs
- A client (e.g., browser) initiates a connection to the server over TCP.
-
Once connected, the client sends an HTTP request with headers.
-
For example, accessing
openai.com/pricing
would send:GET /pricing HTTP/1.1 Host: openai.com Content-Type: text/html
-
The server reads the request, processes it, and sends an appropriate HTTP response.
-
The connection may then be closed or kept alive based on the headers.
Next Goal: Building a mini web framework from these learnings
# Clone and run - that's it!
git clone https://github.com/kevinnadar22/HTTP-Server
cd HTTP-Server
python main.py
Open http://localhost:8000 - Your notes app is ready! ✓
- Full CRUD (Create, Read, Update, Delete)
- Real-time search and responsive design
- Auto-saving database and modern UI
- Concurrent connections and error handling
- HTTP compliance and RESTful API
Layer | Technology | Why No Framework? |
---|---|---|
Server | Raw Python Sockets | Learn HTTP fundamentals |
Database | Custom JSON ORM | Understand data persistence |
Frontend | Vanilla JS + CSS | Master DOM manipulation |
Feel free to reach out:
- GitHub: kevinnadar22
- Email: [email protected]