Well not exactly, first you create a socket, then you set it to receive and bind it to port 80, then you wait for a connection, and when one comes in you fork another socket off to handle that, so your original one is able to continue to listen for more incoming connections. Then the forked socket must go through use the http protocol designated by rfc 1945, and use that to determine what exactly the client want, still using the rfc 1945, and then serve that back to them. Then end the forked socket.

I'll give your link a look though