Что именно означает постоянное соединение?

Я читал о «постоянном HTTP-соединении», но почему-то не понимаю, что означает постоянное в этом контексте.
Не могли бы вы уточнить?


person Kevin Boyd    schedule 26.09.2009    source источник
comment
Хаос означает, что соединение между клиентом и сервером не закрывается после обмена информацией, оставляя его открытым для дальнейшего взаимодействия. Это намного быстрее, чем устанавливать новое соединение каждый раз, когда вам нужно передать информацию.   -  person NTDLS    schedule 26.09.2009


Ответы (3)


До сих пор все обсуждения велись со стороны браузера. Браузер сначала запрашивает фактическую страницу, а затем анализирует страницу и обнаруживает все другие ресурсы, которые ему нужны, прежде чем он сможет отобразить эту страницу. Браузер запрашивает эти ресурсы и другие зависимые ресурсы один за другим. Таким образом, поддержание постоянного соединения здесь очень эффективно, поскольку исключаются накладные расходы на создание и разрушение соединений.

Что касается веб-сервера, постоянное соединение будет тем, которое позволяет ему «проталкивать» контент в веб-браузер. Теперь HTTP не поддерживает это. Итак, есть несколько обходных путей с javascript, когда страница в основном обновляется через некоторое время.

Вы можете видеть, что этот трюк используется многими провайдерами электронной почты в Интернете, которые постоянно проверяют в фоновом режиме наличие новых писем. Это дает ощущение, что когда приходит новое письмо, сервер «отправляет» уведомление о новом письме в веб-браузер. Но на самом деле это веб-браузер, который постоянно проверяет сервер на наличие новой почты.

Еще один момент, который я хотел бы отметить, заключается в том, что на самом деле мы не видим никакого обновления страницы из-за другого трюка, который позволяет обновлять только определенные части страницы по запросу. (ПОДСКАЗКА: AJAX)

person Trainee4Life    schedule 26.09.2009
comment
Если я сохраню соединение с веб-сервером, будет ли браузер постоянно отображать полосу загрузки? - person Kevin Boyd; 26.09.2009
comment
Веб-браузер показывает полосу загрузки только в том случае, если он действительно что-то запрашивает. Фоновые данные, независимо от того, открыто соединение или нет, не должны отражаться в пользовательском интерфейсе браузера. - person Trainee4Life; 26.09.2009
comment
Как работает веб-сокет по сравнению с постоянным HTTP-соединением? Вы сказали, что на самом деле браузер забирает данные с сервера, создавая впечатление, будто сервер отправляет данные клиенту. Действительно ли веб-сокеты достигают передачи от сервера к клиенту? - person Sun; 21.03.2018
comment
@Sunny Насколько я понимаю, веб-сокеты работают по TCP, а не по HTTP, что позволяет устанавливать и поддерживать настоящие постоянные соединения. - person helado; 05.11.2018

Это означает, что сервер не закрывает сокет после того, как он завершил отправку ответа (поэтому длина ответа должна быть указана иначе, через заголовки или фрагменты), чтобы клиент мог делать другие запросы в том же сокете. Веб-страница часто запрашивает несколько других частей (изображения, CSS, сценарии и т. Д.) На том же сервере, что и сама страница, поэтому повторное использование сокета для некоторых из этих дополнительных запросов к тому же серверу может уменьшить общую задержку по сравнению с закрытием оригинальный сокет и открытие новых для всех последующих запросов.

person Alex Martelli    schedule 26.09.2009
comment
Как заявил darkassassin93, соединение прекратится в случае out.close () на сервлете. В этом случае, как мы могли бы реализовать постоянное HTTP-соединение на сервере Java Tomcat? Или нам придется использовать сторонние инструменты для реализации этого? Другой вопрос, а что с клиентской стороной? - person Kevin Boyd; 26.09.2009
comment
@Kevin, у вас нет контроля над браузером (на стороне клиента): он устанавливает свои собственные политики (вы можете просто надеяться, что он поддерживает сохранение жизни; большинство из них). Повторяя вызов .close, я считаю, что это закрывает соединение (что является его конкретной целью), поэтому способ (надеюсь, при сотрудничестве браузера) НЕ закрывать соединение - НЕ вызывать close - может быть недостаточно, но, безусловно, необходимо. - person Alex Martelli; 26.09.2009

Думаю, это переход на http или https для браузера веб-сайта. Если у вас старый https: // и теперь вы используете http для файла .htaccess в браузере, то эта проблема должна быть создана с помощью плагинов yoast для сканирования одной страницы. не волнуйтесь, это не важная ошибка. Для хакеров это способ взломать ваш веб-сайт, если ваше ssl-соединение пусто, они должны прикрепить эту страницу или домен к вашему ssl-соединению eb http://www.example.com и когда вы просматриваете https://www.example.com в браузере есть еще одна ссылка, открывающая домен вашего сайта.

Решение для этого: всегда используйте свой полный адрес для веб-сайта: для защиты хакеров от вашего веб-сайта используйте ssl и https: / page для вашего веб-сайта.

Тогда эта проблема никогда не появлялась ни на одном тестовом сайте или странице.

person Shahid Abbas Saher    schedule 28.02.2016