Http, если клиент или сервер закрывают соединение (keep-alive)

Как школьный проект, я должен сделать HTTP/1.1-совместимый сервер на C++, но у меня возникают проблемы с реализацией keep-alive механизм.

Мой сервер работает следующим образом: поток принимает новые соединения и передает открытый сокет рабочему потоку в пуле потоков. Этот работник получает данные из этого сокета, обрабатывает запрос, отправляет его и начинает получать снова, сохраняя соединение открытым, пока клиент подключен.

Тем не менее, когда я проводил тестирование в Chrome, я заметил, что запрашиваемое содержимое появляется только при выключении сервера (например, при принудительном закрытии соединения). Похоже, что chrome не считает запрос завершенным, пока он все еще подключен.

То же самое с curlкогда я делаю например curl localhost:4242/test.html содержимое возвращается прямо на этот раз, но curl не выходит

Это нормально? Что мне здесь не хватает?

0 ответов

Другие вопросы по тегам