Як видно з назви, я хотів би написати сервер HTTP. Моє запитання таке, як це зробити? Я знаю, це звучить ДУЖЕ загально і занадто "високий рівень", але є метод для мого божевілля. Відповідь на це питання повинна бути, я вважаю, мовою агностиком; сенс, незалежно від того, якою мовою я користуюся (наприклад, C, C ++, Java тощо), відповідь має бути однаковою. Я маю загальне уявлення про те, як це має працювати:
- Відкрийте розетку на порту 80.
- Зачекайте, коли клієнт зробить запит.
- Прочитайте запит (тобто, ця людина хоче сторінки "contact-us.html").
- Знайдіть і прочитайте "contact-us.html".
- Надішліть заголовок html, а потім надішліть вміст "contact-us.html"
- Зроблено
Як я вже сказав, я вважаю, що це процес, але я не впевнений на 100%. Це підводить мене до основи мого питання. Як або де людина дізнається цю інформацію?
Що робити, якщо я не хотів писати лише сервер HTTP, що робити, якщо я хотів написати FTP-сервер, сервер чату, переглядач зображень тощо? Як людина дізнається точні кроки / процес, необхідний для створення робочого HTTP-сервера?
Співробітник розповів мені про html-заголовок, тому я б ніколи не знав цього без нього. Він також сказав щось про передачу кожного запиту в нову нитку. Чи є якась велика книга про те, як все працює? Чи є інструкція про те, що потрібно, щоб бути HTTP-сервером?
Я спробував googling "як працює сервер HTTP", але єдині відповіді, які я міг знайти, були спрямовані на середнього Джо, а не на людину, яка хоче запрограмувати сервер HTTP.