Как браузер обрабатывает ввод URL в адресной строке?
Когда мы открываем определенный URL в браузере, как браузер загружает и отображает содержимое? Мы показываем, что сделал браузер поочередно, в соответствии с последовательностью событий.
Помимо некоторых специфических веб-просмотров с использованием настраиваемых нативных приложений при просмотре различных веб-страниц, большинство веб-страниц просматриваются с использованием браузера. Итак, когда мы открываем определенный URL в браузере, как браузер загружает и отображает содержимое? Мы покажем, что сделал браузер поочередно, в соответствии с последовательностью событий.
Пользователь вводит URL в браузере
В нашем предыдущем блог-посте мы рассмотрели компоненты URL, включая то, что известно как хост/домен, например, www.google.com
, blog.logto.io
и т.д.
Поиск IP-адреса с использованием хоста/домена
Браузер не может напрямую понимать хост/домен и находить соответствующие ресурсы, вместо этого ему нужно узнать конкретный IP-адрес, чтобы определить местоположение ресурсов, необходимых для веб-страниц.
Браузер найдет IP-адрес, соответствующий хосту/домену, через систему доменных имен (DNS).
Чтобы процесс поиска IP-адресов был как можно быстрее, связь между хостом/доменом и IP-адресом часто осуществлялась с использованием различных кешей, таких как кеш браузера, кеш операционной системы и т.п.
Когда поиск в кеше не находит результата, мы проходим через обычный процесс поиска DNS, чтобы найти IP-адрес хоста/домена. Вот эти шаги:
- Когда пользователь вводит
blog.logto.io
в веб-браузере, веб-браузер запрашивает DNS-сервис, чтобы получить IP-адрес, соответствующий запросу от DNS-резолвера - DNS-резолвер отправляет запрос к корневому серверу DNS (.)
- Корневой сервер возвращает адрес, соответствующий DNS-серверу верхнего уровня (TLD) (
.io
в данном случае) и некоторую связанную информацию - DNS-резолвер отправляет запрос к серверу TLD
.io
- Сервер TLD
.io
отвечает адресом сервера именlogto.io
- DNS-резолвер запрашивает сервер имен домена
logto.io
- Сервер имен домена
logto.io
отвечает адресомblog.logto.io
- DNS-резолвер пересылает IP-адрес
blog.logto.io
обратно веб-браузеру
Затем веб-браузер может запросить соответствующие ресурсы с сервера и отобразить веб-страницу для просмотра пользователем.
Установление TCP-соединения
После получения IP-адреса, соответствующего адресу домена, через DNS сервис, браузер инициирует и устанавливает TCP-соединение с сервером.
Получение ресурсов и отображение веб-страниц
После установки TCP-соединения, браузер инициирует сетевой запрос к серверу, получает соответствующие ресурсы и отображает содержимое веб-страницы на основе полученных ресурсов для просмотра пользователем.