Некоторые преимущества использования Keep-Alive для HTTP-соединений:
- Снижение нагрузки на процессор и память. 14 Это происходит, потому что одновременно открывается меньше соединений. 1
- Возможность конвейерной обработки запросов и ответов. 1
- Снижение перегрузки сети. 14 Это связано с тем, что устанавливается меньше TCP-соединений. 1
- Уменьшение задержки при последующих запросах. 14 Это происходит из-за того, что не нужно выполнять процесс установления соединения. 4
- Возможность сообщать об ошибках без необходимости закрывать TCP-соединение. 1
Некоторые недостатки использования Keep-Alive для HTTP-соединений:
- Недоступность ресурсов для других клиентов. 12 Если клиент не закрывает соединение после получения всех необходимых данных, то ресурсы, необходимые для поддержания соединения, становятся недоступны для других клиентов. 12
- Снижение производительности сервера. 35 Это может произойти, если многие клиенты используют Keep-Alive, а у веб-сервера есть предел параллельности или проблемы со масштабируемостью. 3
- Возможность атак типа «отказ в обслуживании». 3 Keep-Alive может быть вектором для таких атак. 3