Какие шаги предпринимаются от ввода адреса веб-сайта до страницы, отображаемой в браузере? - PullRequest
5 голосов
/ 24 мая 2010

А как ускорить процесс с точки зрения разработчика?

Ответы [ 2 ]

7 голосов
/ 24 мая 2010

Происходит много вещей.

При первом вводе адреса браузер будет искать имя хоста в DNS, если его еще нет в кэше браузера.

Затем браузер отправляет HTTP-запрос GET на удаленный сервер.

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

Очевидно, что время отклика сервера будет одной из критических точек для воспринимаемой производительности, но есть много других факторов.

Когда ответ возвращается с сервера, браузер сделает несколько вещей. Сначала он проанализирует возвращенный HTML и создаст из него DOM (объектную модель документа). Затем он запустит любой запуск Javascript на странице; до того, как страница готова для отображения в браузере. Помните, что если страница содержит какие-либо ресурсы, такие как внешние таблицы стилей, сценарии, изображения и т. Д., Браузер должен будет загрузить их, прежде чем сможет отобразить страницу. Каждый ресурс - это отдельное получение HTTP, и здесь есть некоторое время ожидания. Следовательно, в некоторых случаях можно значительно сократить время загрузки, используя как можно меньше внешних ресурсов, и убедитесь, что они кэшируются на клиенте (поэтому браузеру не нужно извлекать их для каждого просмотра страницы).

Подводя итог, для оптимизации производительности веб-страницы, которую вы хотите рассмотреть, как минимум:

  • Время ответа сервера
  • Полоса пропускания / время передачи контента.
  • Убедитесь, что у вас есть маленький и простой DOM (особенно если вам нужна поддержка IE6).
  • Убедитесь, что вы понимаете кэширование на стороне клиента и настройки, которые необходимо установить на сервере.
  • Убедитесь, что клиент загружает как можно меньше данных. Подумайте также о ресурсах GZipping и, возможно, динамическом контенте (в зависимости от вашей ситуации).
  • Убедитесь, что у вас нет загружающего JavaScript кода при загрузке страницы.

Возможно, вы захотите ознакомиться с HTTP-протоколом , а также с некоторыми Best Practices . Можно использовать следующие инструменты: YSlow и Google Page Speed ​​

1 голос
/ 24 мая 2010

Какие шаги предпринимаются от ввода адреса веб-сайта до страницы, отображаемой в браузере?

Шаги примерно такие:

  1. Получить IP-адрес URL
  2. Создать TCP (HTTP) соединение с IP-адресом и запросить указанную страницу
  3. Получить / загрузить страницу через TCP / HTTP; страница может состоять из нескольких файлов / загрузок: например, HTML-документ, файлы CSS, файлы JavaScript, файлы изображений ...
  4. Визуализация страницы

А как ускорить процесс с точки зрения разработчика?

Измерьте, чтобы определить, какой из этих шагов медленный:

  • Стоит оптимизировать только тот шаг, который медленнее (нет смысла оптимизировать шаги, которые уже быстрые)
  • Ответ на ваш вопрос зависит от того, на каком этапе он находится.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...