@pithhabr

Что нужно знать, чтобы написать web server на C++?

Доброго времени суток, хотелось бы узнать, что стоило бы изучить для написания web server'a на C++?
На каком уровне должно быть понимания языка программирования, сетей и что вообще стоило бы знать и подучить помимо этого?
  • Вопрос задан
  • 1975 просмотров
Пригласить эксперта
Ответы на вопрос 3
@rPman
для создания простейшего веб сервера на c++ требуется минимум знаний

базовые знания devops (умение устанавливать/настраивать необходимый софт разработчика и используемые библиотеки)
базовые знания языка программирования c++
базовые знания понимания работы сетей, понятие socket
базовые знания по тому что такое web server и хотя бы приблизительное понимание http протокола
базовые знания разработки многопоточных/многопользовательских приложений (даже без знаний про мьютекс/семафор, просто общие положения,так как веб сервер может быть однопоточным но знать/понимать проблему нужно)

эти знания позволят написать hello world web server
дальнейшее усложнение задачи потребует больше знаний уже по этой задаче
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Полноценный веб сервер - это очень сложное ПО. Сам по себе протокол HTTP оброс кучей дополнений и улучшений, только посмотрите список RFC, его описывающих. В одиночку написать с нуля что-то подобное, например, apache - практически не посильное дело.
Кроме HTTP, конечно, нужно хорошо знать и понимать сетевое программирование, параллельное программирование, английский язык, что-то еще.

Но есть библиотеки, в которых веб сервер в каком-то виде с теми или иными ограничениями уже реализован. Можно использовать их. В этом случае задача сильно упрощается.
Как пример: libonion, haywire, но это больше для Си. Для плюсов есть другие варианты.
Ответ написан
Комментировать
@calculator212
на самом деле на ваш вопрос так просто не ответить. Зависит от того, хотите ли вы использовать сторонние библиотеки или нет, что должен делать сервер и т.д. Укажите подробно, чего вы конкретно ожидаете. Т.к. можно в целом использовать удобноую библиотеку и в целом вообще не знать как и что там устроено.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы