Это зависит от версии протокола:
HTTP/1.0
(Для старшего среди нас).
Соединения немедленно закрываются, если не указано иное. Чтобы поддерживать соединение, клиент может добавить Соединение: Keep-alive
заголовок к запросу. Если сервер поддерживает это и соглашается, соединение сохраняется. Если какая-либо из сторон больше не хочет поддерживать соединение (например, клиент больше не добавляет указанный заголовок или добавляет Подключение: закрыть
), соединение закрывается после завершения запроса.
HTTP/1.1
Здесь по умолчанию является держать соединение открытым, если специально не указано иное (Подключение: закрыть
). Однако сервер может решить закрыть соединение после некоторого тайм-аута бездействия (например, 5 секунд). Опять же, вы никогда не сможете сила сервер для поддержания соединения, но делает фиктивный запрос каждые 4 секунды мощь работа, но на самом деле это должен быть запрос, который почти не нагружает сервер, и меня, как администратора сервера, даже раздражало бы множество надоедливых строк в файле журнала.
Я не буду углубляться в HTTP/2, потому что опции мультиплексирования и serv push делают ситуацию немного сложной.