IIS HTTP Keep-Alives - PullRequest
       45

IIS HTTP Keep-Alives

1 голос
/ 21 сентября 2011

Я читаю, что Keep-Alives предназначен для повышения производительности, поэтому нет необходимости заново создавать соединения, а просто повторно использовать существующие. Что, если будет всплеск трафика, будут ли создаваться новые соединения?

Кроме того, если я не включу Keep-Alive и в среде с интенсивным трафиком, не закончится ли со временем соединение / порт сокета на стороне клиента? потому что новое соединение должно быть создано для каждого http / веб-запроса.

1 Ответ

4 голосов
/ 21 сентября 2011

HTTP - это протокол без сохранения состояния.
В HTTP 1.0 каждый запрос означал открытие нового TCP-соединения.
Это вызывало проблемы с производительностью (например, пришлось повторно выполнить трехстороннее рукопожатие для каждого GET или POST)Keep-Alive Заголовок был добавлен для поддержания соединения между запросами, а в HTTP1.1 по умолчанию установлено постоянное соединение.
Это означает, что соединение повторно используется для разных запросов.
Я не очень знаком с IIS, но если естьявляется конфигурацией для закрытия соединения после каждого HTTP-ответа, это будет влиять на производительность.
Что касается исчерпания сокетов / портов на стороне клиента, которое может произойти, если клиент запускает огромную количество запросов и новое TCP-соединение должны быть открыты для каждого HTTP-запроса.
Через некоторое время порты будут исчерпаны

...