I bet you now know more than most about the http protocol, now that you built your own.
I don't claim to know all of http. But the important parts i think i understand, yes.
I think building your own webserver is a great educational exercise, because it exposes you to all the problems involved, and also makes you appreciate the pre-made wheels that are given to us.
There are a few quirks in the protocol, but i spend at least half the time wondering why a correctly implemented feature wont work... until i found the correct browser workaround. And not all of the browser bugs are bugs, some are backward compatibility workarounds in the browsers that i now need to workaround in the server. Insert facepalm here
So, yes, i did learn quite a lot. And on the side, i even got a working product out of it ;-)
Don't use '#ff0000':
use Acme::AutoColor; my $redcolor = RED();
All colors subject to change without notice.