Хранилища были добавлены в HTTP, чтобы в основном уменьшить существенные служебные данные быстрого создания и закрытия соединений сокетов для каждого нового запроса . Ниже приведено краткое описание того, как он работает в HTTP 1.0 и 1.1:Как работает http keep-alive?
HTTP 1.0 Спецификация HTTP 1.0 на самом деле не вникает в то, как Keep-Alive должен работать. В основном, браузеры, которые поддерживают Keep-Alive добавляет дополнительный заголовок к запросу как:
Connection: Keep-Alive Когда сервер обрабатывает запрос и генерирует ответ, он также добавляет заголовок ответ: соединения : Keep-Alive. Когда это будет сделано, соединение сокета будет не закрыто, как раньше, но остается открытым после отправки ответа. Когда клиент отправляет другой запрос, он повторно использует одно и то же соединение. Соединение будет продолжать использоваться до тех пор, пока клиент или сервер не решит, что разговор завершен, и один из них отключает соединение.
Вышеуказанное объяснение comes from here. Но я не понимаю одну вещь
Когда это будет сделано, то соединение с сокетом не закрыта, как и раньше, но остаются открытыми после отправки ответа.
Как я понимаю, мы просто отправляем пакеты tcp, чтобы делать запросы и ответы, как это помогает socket connection
и как он работает? Нам по-прежнему приходится отправлять пакеты, но как он может каким-то образом установить постоянное соединение? Это кажется нереальным.
@JakeGould: Спасибо за редактирование. Я думаю, что это уместно, аналогичные вопросы были заданы раньше. Например: http://stackoverflow.com/questions/1480329/what-exactly-does-a-persistent-connection-mean, но они не объясняют, как это «соединение сокетов» действительно работает. –
@good_evening Это старый вопрос, назад, чем такой вопрос был в порядке. Как JakeGould предложил попробовать Server Fault или [networkengineering.se]. –
Я думаю, что здесь более уместно, чем на сбое сервера, поскольку он просто просит объяснений технологии, которая может помочь программистам. – PSIXO