Что нужно знать, чтобы написать web server на C++?
для создания простейшего веб сервера на c++ требуется минимум знаний

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

эти знания позволят написать hello world web server
дальнейшее усложнение задачи потребует больше знаний уже по этой задаче
на самом деле на ваш вопрос так просто не ответить. Зависит от того, хотите ли вы использовать сторонние библиотеки или нет, что должен делать сервер и т.д. Укажите подробно, чего вы конкретно ожидаете. Т.к. можно в целом использовать удобноую библиотеку и в целом вообще не знать как и что там устроено.