Http Постоянное соединение (keep-alive) и номера портов
Постоянное http-соединение (keep-alive) всегда связано с определенным портом или может использовать диапазон портов?
2 ответа
Когда клиент открывает HTTP-соединение с веб-сервером, он выделяет локальный сокет из операционной системы, который привязывает сокет к некоторому порту на исходном сервере. Это исходный порт соединения, и это может быть что угодно (хотя у разных ОС есть ограничения на порты).
Другой конец сокета подключен к порту 80 веб-сервера (по умолчанию HTTP) или к пользовательскому порту веб-сервера. Этот порт одинаков для всех подключений к данному веб-серверу.
Механизм поддержания активности работает просто так, чтобы клиент (веб-браузер) или сервер не закрывали TCP-соединение сразу после того, как запрос был выполнен, сохраняя соединение открытым в случае необходимости новых запросов.
Следовательно, для соединения keepalive применяются одинаковые порты источника и назначения.
Если трафик в соединении отсутствует в течение указанного времени, любой конец может закрыть TCP-соединение.
Следующий запрос к серверу установит новое соединение, открыв новый исходный порт.
Соединения только с обычным слушателем HTTP, если вы это имеете в виду - это не отдельный порт прослушивания.
Что касается портов, которые он может использовать, HTTP обычно находится на порте 80, но вы можете настроить свой HTTP-сервер на любой порт, который вы пожелаете.