Wie der Titel schon sagt, möchte ich einen HTTP-Server schreiben. Meine Frage ist, wie mache ich das? Ich weiß, das klingt SEHR allgemein und zu "hoch", aber mein Wahnsinn hat eine Methode. Eine Antwort auf diese Frage sollte meines Erachtens sprachunabhängig sein. Das heißt, egal welche Sprache ich verwende (z. B. C, C ++, Java usw.), die Antwort sollte dieselbe sein. Ich habe eine allgemeine Vorstellung davon, wie das funktionieren soll:
- Öffnen Sie eine Steckdose an Port 80.
- Warten Sie, bis ein Client eine Anfrage gestellt hat.
- Lesen Sie die Anfrage (dh diese Person möchte die Seite "contact-us.html").
- Suchen und lesen Sie "contact-us.html".
- Sende einen HTML-Header und sende dann den Inhalt von "contact-us.html"
- Erledigt
Wie gesagt, ich glaube, das ist der Prozess, aber ich bin nicht 100% sicher. Dies führt mich zum Kern meiner Frage. Wie oder wo findet eine Person diese Informationen heraus?
Was wäre, wenn ich nicht nur einen HTTP-Server schreiben wollte, sondern einen FTP-Server, einen Chat-Server, einen Bildbetrachter usw.? Wie findet eine Person die genauen Schritte / Prozesse heraus, die zum Erstellen eines funktionierenden HTTP-Servers erforderlich sind?
Ein Mitarbeiter erzählte mir von dem HTML-Header, daher hätte ich das NIE ohne ihn gewusst. Er sagte auch etwas über die Übergabe jeder Anfrage an einen neuen Thread. Gibt es ein großes Buch darüber, wie die Dinge funktionieren? Gibt es ein Handbuch darüber, was es braucht, um ein HTTP-Server zu sein?
Ich habe versucht zu googeln, wie ein HTTP-Server funktioniert, aber die einzigen Antworten, die ich finden konnte, richteten sich gegen Ihren durchschnittlichen Joe und nicht gegen eine Person, die einen HTTP-Server programmieren möchte.