HTTP Keep-Alive работает следующим образом: 14
- Если браузер поддерживает постоянные соединения, он посылает дополнительный заголовок в запросе: Connection: Keep-Alive. 1
- Затем, когда сервер получает такой запрос и генерирует ответ, он также добавляет в заголовок ответа Connection: Keep-Alive. 1
- После этого соединение не разрывается, а остаётся открытым. 1
- Когда клиент отправляет ещё один запрос, он использует это же соединение. 1
- Так будет продолжаться до тех пор, пока клиент или сервер не решат, что обмен окончен, и одна из сторон завершит соединение. 1
Преимущества использования HTTP Keep-Alive:
- ниже загрузка ЦПУ и расход памяти (потому как открывается меньше соединений одновременно); 1
- можно использовать HTTP pipelining (конвейерную обработку) запросов и ответов; 1
- снижает вероятность перегрузки сети (меньше TCP соединений); 1
- уменьшает задержку для последующих запросов (не нужно заново устанавливать TCP соединение); 1
- ошибки HTTP возвращаются без закрытия соединения — клиенты могут пробовать новые команды, и, если они не поддерживаются сервером, послать повторный запрос в том же соединении, используя старую семантику. 1