Происходит много вещей.
При первом вводе адреса браузер будет искать имя хоста в DNS, если его еще нет в кэше браузера.
Затем браузер отправляет HTTP-запрос GET на удаленный сервер.
То, что происходит на сервере, действительно зависит от сервера; но он должен ответить HTTP-ответом, который включает заголовки, которые, возможно, описывают содержимое в браузере и сколько времени ему разрешено кэшироваться. Ответом может быть перенаправление, и в этом случае браузер отправит другой запрос на перенаправленную страницу.
Очевидно, что время отклика сервера будет одной из критических точек для воспринимаемой производительности, но есть много других факторов.
Когда ответ возвращается с сервера, браузер сделает несколько вещей. Сначала он проанализирует возвращенный HTML и создаст из него DOM (объектную модель документа). Затем он запустит любой запуск Javascript на странице; до того, как страница готова для отображения в браузере. Помните, что если страница содержит какие-либо ресурсы, такие как внешние таблицы стилей, сценарии, изображения и т. Д., Браузер должен будет загрузить их, прежде чем сможет отобразить страницу. Каждый ресурс - это отдельное получение HTTP, и здесь есть некоторое время ожидания. Следовательно, в некоторых случаях можно значительно сократить время загрузки, используя как можно меньше внешних ресурсов, и убедитесь, что они кэшируются на клиенте (поэтому браузеру не нужно извлекать их для каждого просмотра страницы).
Подводя итог, для оптимизации производительности веб-страницы, которую вы хотите рассмотреть, как минимум:
- Время ответа сервера
- Полоса пропускания / время передачи контента.
- Убедитесь, что у вас есть маленький и простой DOM (особенно если вам нужна поддержка IE6).
- Убедитесь, что вы понимаете кэширование на стороне клиента и настройки, которые необходимо установить на сервере.
- Убедитесь, что клиент загружает как можно меньше данных. Подумайте также о ресурсах GZipping и, возможно, динамическом контенте (в зависимости от вашей ситуации).
- Убедитесь, что у вас нет загружающего JavaScript кода при загрузке страницы.
Возможно, вы захотите ознакомиться с HTTP-протоколом , а также с некоторыми Best Practices . Можно использовать следующие инструменты: YSlow и Google Page Speed