Ответ 1
Пройдите нижеприведенные шаги, и вы должны быть понятны с жизненным циклом запроса и способом рендеринга ответа.
-
Вы вводите URL-адрес в адресную строку в предпочитаемом браузере.
-
Браузер анализирует URL-адрес, чтобы найти протокол, хост, порт и путь.
-
Он формирует HTTP-запрос (это, скорее всего, протокол)
-
Чтобы добраться до хоста, сначала нужно перевести человеческий читаемый хост в IP-номер, и он делает это, выполняя поиск DNS на хосте
-
Затем необходимо открыть сокет с компьютера пользователя на этот IP-номер, указанный порт (чаще всего порт 80)
-
Когда соединение открыто, HTTP-запрос отправляется на хост. Хост перенаправляет запрос серверному программному обеспечению (чаще всего Apache), настроенному на прослушивание на указанном порту
-
Сервер проверяет запрос (чаще всего только путь) и запускает серверный плагин, необходимый для обработки запроса (в соответствии с используемым языком сервера, PHP, Java,.NET, Python?)
-
Плагин получает доступ к полному запросу и начинает подготовку ответа HTTP.
-
Чтобы построить ответ, доступ к базе данных (скорее всего). Выполняется поиск базы данных на основе параметров в пути (или данных) запроса
-
Данные из базы данных вместе с другой информацией, которую плагин решает добавить, объединяются в длинную строку текста (возможно, HTML).
-
Плагин объединяет эти данные с некоторыми метаданными (в виде заголовков HTTP) и отправляет ответ HTTP в браузер.
-
Браузер получает ответ и анализирует HTML (который с вероятностью 95% сломан) в ответе
-
Дерево DOM построено из разбитого HTML
-
Новые запросы поступают на сервер для каждого нового ресурса, который находится в источнике HTML (обычно это изображения, таблицы стилей и файлы JavaScript).
-
Вернитесь к шагу 3 и повторите для каждого ресурса.
-
Таблицы стилей анализируются, и информация рендеринга в каждом случае привязывается к соответствующему node в дереве DOM
-
JavaScript анализируется и выполняется, а узлы DOM перемещаются и информация о стиле обновляется соответствующим образом.
-
Браузер отображает страницу на экране в соответствии с деревом DOM и информацией о стиле для каждого node
-
Вы видите страницу на экране
-
Вы раздражаетесь, что весь процесс был слишком медленным.