This is the first article in a series where I document building an HTTP server in Java from raw sockets — no frameworks, no Tomcat, no Spring. Just java.net and whatever mistakes I make along the way.

Where I Started

Week one looked like this — everything crammed into a single main() method:

public class App {

public static void main(String[] args) {