Jak mówi tytuł, chciałbym napisać serwer HTTP. Moje pytanie brzmi: jak to zrobić? Wiem, że to brzmi BARDZO ogólnie i zbyt „na wysokim poziomie”, ale w moim szaleństwie jest metoda. Odpowiedź na to pytanie powinna być, jak sądzę, agnostyczna wobec języka; czyli bez względu na to, jakiego języka używam (np. C, C ++, Java itp.), odpowiedź powinna być taka sama. Mam ogólne pojęcie o tym, jak to powinno działać:
- Otwórz gniazdo na porcie 80.
- Poczekaj, aż klient złoży żądanie.
- Przeczytaj żądanie (tj. Ta osoba chce strony „contact-us.html”).
- Znajdź i przeczytaj „contact-us.html”.
- Wyślij nagłówek HTML, a następnie wyślij treść „contact-us.html”
- Gotowy
Tak jak powiedziałem, wierzę, że to jest proces, ale nie jestem w 100% pewien. To prowadzi mnie do sedna mojego pytania. Jak lub gdzie dana osoba znajduje te informacje?
Co jeśli nie chciałbym pisać tylko na serwerze HTTP, co jeśli chciałbym napisać serwer FTP, serwer czatu, przeglądarkę zdjęć itp.? W jaki sposób osoba dowiaduje się, jakie dokładnie kroki / proces są potrzebne do utworzenia działającego serwera HTTP?
Współpracownik powiedział mi o nagłówku HTML, więc NIGDY nie wiedziałbym tego bez niego. Powiedział także coś o przekazaniu każdej prośby do nowego wątku. Czy jest jakaś duża książka o tym, jak to działa? Czy istnieje instrukcja obsługi serwera HTTP?
Próbowałem google „jak działa serwer HTTP”, ale jedyne odpowiedzi, jakie mogłem znaleźć, były skierowane do przeciętnego Joe, a nie do osoby, która chce zaprogramować serwer HTTP.