00 / Custom HTTP/1.1 Web Server
This portfolio is hosted
on the server I built.
Created as an individual project at FHNW, this Python-based HTTP/1.1 server was developed through multiple iterations, with particular attention to security, resilience, and protocol correctness.
Instead of relying on a web framework, I implemented the core server behaviour myself — from parsing requests and generating responses to routing, persistent connections and secure file handling.
The server now runs on an Ubuntu VM and hosts this portfolio.
Under the hood
Protocol
HTTP/1.1 parsing
Response handling
Routing
Keep-Alive
Status codes
Static files
Security
TLS / HTTPS
Basic Authentication
Rate limiting
Host validation
Path traversal protection
Request & resource limits
Server
TCP sockets
Thread pool
Connection limits
Timeouts
Logging
Health endpoint
Deployment
Ubuntu
systemd
Let's Encrypt
Non-root execution
Certificate renewal
Service hardening
Security is approached as a layered system: individual safeguards address different risks instead of relying on a single mechanism.
What I learned
Implementing the server myself gave me a much clearer understanding of how HTTP works in practice. Instead of relying on a framework to handle the details, I had to work directly with requests, headers, connections, and status codes, and understand how each part fits into the protocol.
The project also showed me how closely software development, security and infrastructure are connected.