Http, если клиент или сервер закрывают соединение (keep-alive)
Как школьный проект, я должен сделать HTTP/1.1-совместимый сервер на C++, но у меня возникают проблемы с реализацией keep-alive
механизм.
Мой сервер работает следующим образом: поток принимает новые соединения и передает открытый сокет рабочему потоку в пуле потоков. Этот работник получает данные из этого сокета, обрабатывает запрос, отправляет его и начинает получать снова, сохраняя соединение открытым, пока клиент подключен.
Тем не менее, когда я проводил тестирование в Chrome, я заметил, что запрашиваемое содержимое появляется только при выключении сервера (например, при принудительном закрытии соединения). Похоже, что chrome не считает запрос завершенным, пока он все еще подключен.
То же самое с curl
когда я делаю например curl localhost:4242/test.html
содержимое возвращается прямо на этот раз, но curl
не выходит
Это нормально? Что мне здесь не хватает?