Типичный HTTP-сеанс, но стиль Ajax - PullRequest
0 голосов
/ 02 июня 2018

Попытка понять модель AJAX изнутри.Согласно Типичный сеанс HTTP

В клиент-серверных протоколах, таких как HTTP, сеансы состоят из трех этапов:

  1. Клиент устанавливает TCPсоединение (или соответствующее соединение, если транспортный уровень не является TCP).
  2. Клиент отправляет запрос и ожидает ответа.
  3. Сервер обрабатывает запрос, отправляя ответ, предоставляя код состояния и соответствующие данные.

Как это соответствует вызову AJAX?

Поддерживается ли соединение (в другом потоке) с сервером в фоновом режиме, чтобы браузер не блокировался и мог выполнять другие действия?

Тогда, когда готов сервер, готов ли он?протолкнул браузер через это «скрытое» соединение, и браузер затем обновил DOM?

Я имею в виду, существует ли открытый сеанс, поддерживаемый AJAX, или он закрывает и открывает соединения / сеансы, потому что HTTPпротокол не имеет статуса?

1 Ответ

0 голосов
/ 03 июня 2018

О каких сессиях вы говорите?Приложение http / 2 обычно реализует как минимум 4 уровня сеанса (хотя некоторые люди все еще пытаются описать его с точки зрения модели OSI).

С точки зрения потока выполнения, JavaScript на странице выполняется какодна нить.Но поток не блокируется, когда вы вызываете send для объекта xmlhttprequest, если третий аргумент метода open равен true.Если значение равно false, send () будет блокироваться, пока не получит ответ.Для асинхронного метода вы должны назначить действие, которое будет выполняться позже, когда события инициируются объектом запроса.Низкоуровневая обработка интерфейса между xmlhttprequest и нижележащим сетевым стеком ведет себя так, как если бы он был автономным потоком выполнения, но мог бы быть реализован в операции select () / poll () как один поток - это реализовано в браузерекод, и, следовательно, вопрос имеет значение только в том случае, если вы пишете браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...