Po pierwsze to jaki to ma być serwer, czy to ma być jakiś prosty serwerek www ogólnie obrazujący działanie tego typu programów czyli komunikacja z klientem i przesyłanie samego kodu html, czy raczej ma być to już w pełni funkcjonalna aplikacja z obsługą powiedzmy php, z możliwością wielu połączeń, przesyłaniem nie tylko html lecz również obrazków, plików itp?
Na pewno będziesz musiał poznać protokół http, w necie jest sporo stronek na jego temat a jak zwykle jeśli chodzi o protokoły nie zastąpione jest RFC http://www.w3.org/Protocols/rfc2616/rfc2616.html ja z moich zbiorów wygrzebałem też http://www.jmarshall.com/easy/http/
Jeśli byś chciał moge Ci podesłac mój stary projekt serwera www (lecz jest on napisany w C++ Builder) jest bardzo prosty lecz ładnie obrazuje "jak to działa"
Co poza tym, na pewno musisz się w miare dobrze znać na gniazdkach, wątkach...
To tak dość ogólnie, oczywiście postaram się odpowiedzieć na inne konkretniejsze pytania :)