Как видно из названия, я хотел бы написать HTTP-сервер. У меня вопрос такой, как мне это сделать? Я знаю, это звучит ОЧЕНЬ вообще и слишком "на высоком уровне", но в моем безумии есть метод. Я полагаю, что ответ на этот вопрос должен быть независимым от языка; То есть, независимо от того, какой язык я использую (например, C, C ++, Java и т. д.), ответ должен быть одинаковым. У меня есть общее представление о том, как это должно работать:
- Откройте сокет на порту 80.
- Подождите, пока клиент сделает запрос.
- Прочитайте запрос (то есть, этот человек хочет страницу "contact-us.html").
- Найдите и прочитайте "contact-us.html".
- Отправьте заголовок html, затем отправьте содержимое "contact-us.html"
- Выполнено
Как я уже сказал, я считаю, что это процесс, но я не уверен на 100%. Это подводит меня к сути моего вопроса. Как или где человек узнает эту информацию?
Что если я не хочу писать только HTTP-сервер, а что если я хочу написать FTP-сервер, чат-сервер, средство просмотра изображений и т. Д.? Как человек узнает точные шаги / процесс, необходимые для создания работающего HTTP-сервера?
Сотрудник рассказал мне о заголовке html, поэтому я бы никогда не узнал об этом без него. Он также сказал что-то о передаче каждого запроса в новую ветку. Есть ли большая книга о том, как все работает? Есть ли какое-то руководство о том, что нужно, чтобы стать HTTP-сервером?
Я попытался погуглить «как работает HTTP-сервер», но единственные ответы, которые я мог найти, были направлены на вашего среднего Джо, а не на человека, желающего запрограммировать HTTP-сервер.