Веб-сервер должен обрабатывать одновременные соединения. Есть много способов сделать это, некоторые из них:
- Процесс на соединение.
- Процесс на соединение, и пул процессов готов к использованию.
- Резьба на соединение.
- Поток на соединение и готовый пул потоков для использования.
- Один процесс, обрабатывающий каждое событие (принятое соединение, данные, доступные для чтения, может записать клиенту, ...) при обратном вызове.
- Некоторая комбинация вышеперечисленного.
- ...
В конце концов, различие заканчивается тем, что вы сохраняете каждое состояние соединения (явно в структуре контекста, неявно в стеке, неявно в продолжении, ...) и как вы планируете соединения (пусть ОС планировщик делает это, пусть это делают примитивы опроса ОС, ...).