Keep-alives были добавлены в HTTP, чтобы в основном уменьшить значимые накладные расходы на быстрое создание и закрытие соединений сокетов для каждого Новый запрос. Ниже приведен краткий обзор того, как он работает в HTTP 1.0 и 1.1:
HTTP 1.0 Спецификация HTTP 1.0 действительно не вникает в то, как Keep-Alive должен работать. В основном, браузеры, поддерживающие Keep-Alive добавляет дополнительный заголовок к запросу как:
Соединение: Keep-Alive Когда сервер обрабатывает запрос и генерирует ответ, он также добавляет заголовок для ответа: Соединение: Keep-Alive Когда это будет сделано, соединение сокета будет не закрыты по-прежнему, но остаются открытыми после отправки ответа. когда клиент отправляет другой запрос, он повторно использует одно и то же соединение. соединение будет по-прежнему использоваться повторно, пока клиент или сервер решает, что разговор завершен, и один из них отключает соединение.
Ниже приведено объяснение . Но я ничего не понимаю.
Когда это будет сделано, соединение сокета не будет закрыто, как и раньше, но сохраняются открытыми после отправки ответа.
Как я понимаю, мы просто отправляем tcp-пакеты для запросов и ответов, как это помогает socket connection
и как это работает? Нам по-прежнему приходится отправлять пакеты, но как он может каким-то образом установить постоянное соединение? Это кажется нереальным.