Браузер сегодня стал неотъемлемой частью жизни каждого. Фактически, обычный пользователь настольного компьютера большую часть времени проводит в браузере. Браузеры прошли долгий путь в отображении статических HTML-страниц. Современные браузеры могут не только открывать веб-сайты, но и могут открывать файлы других типов, такие как pdf, изображения, гифки и т. Д. Но не многие из нас знают, как работают браузеры. Как разработчик JavaScript, я бы сказал, что это важный элемент в нашем поле знаний. Эта серия статей - результат моего понимания того, как работает браузер. Это будет глубокое погружение, хотя я не буду рассказывать о том, что происходит с оборудованием, потому что

Если вы хотите приготовить яблочный пирог с нуля, вы должны сначала изобрести вселенную. - Карл Саган

Хорошо, в этом посте мы увидим, что происходит, когда мы набираем google.com и нажимаем Enter.

Протокол:

Первое, что проверяет браузер, - это протокол веб-сайта. Прежде чем продолжить, мы увидим, что такое протокол по отношению к веб-сайту. В общем, протокол - это набор правил. Когда Интернет был создан впервые, был создан набор правил, чтобы браузеры и сервер могли понимать друг друга. Это похоже на общий язык, когда 2 человека говорят, чтобы понимать друг друга. Набор правил для всемирной паутины получил название HTTP или Протокол передачи гипертекста, когда он был впервые разработан в 1989 году .

За прошедшие годы HTTP обновился, и даже был введен новый набор правил под названием HTTPS (S означает безопасный). Будет безопаснее, если браузер и сервер обмениваются данными через HTTPS, а не через HTTP, поскольку связь через HTTPS зашифрована. Если мы обратимся к двум людям, говорящим по аналогии, это эквивалентно тому, что два человека говорят на одном языке, но слова имеют разное значение. Даже если их разговор услышит третье лицо, они не смогут его понять.

Этот протокол является первой частью веб-сайта. В нашем примере мы просто набрали google.com без какого-либо протокола. Обычно браузеры по умолчанию добавляют на веб-сайты http, если мы не вводим. Итак, браузер воспринимает наш запрос как http://google.com

Однако современные браузеры ставят безопасность на первое место. Итак, у них есть внутренний список под названием HSTS (HTTP Strict Transport Security). Это список веб-сайтов, которые запрашивали у браузера подключение только через HTTPS, когда он был подключен ранее. Браузер запоминает это и сохраняет в списке. Итак, в нашем примере, если бы мы ранее подключались к google.com, он бы попросил наш браузер подключиться через HTTPS только в следующий раз, и google.com будет в нашем списке HSTS. Поэтому вместо простого http наш браузер добавляет к URL https. URL-адрес для запроса сейчас: https://google.com.

IP-адрес:

У каждого веб-сайта есть уникальный (ish) адрес, называемый IP-адресом. Это как координаты широты и долготы нашего дома. Однако, когда кто-то спрашивает наш адрес, мы не отвечаем «широта 51.509865, долгота -0.118092». Вместо этого мы сообщаем им: Номер двери X, улица Y, город Z, почтовый индекс. Это легче запомнить, не правда ли?

IP-адреса тоже такие. Например, предположим, что IP-адрес google.com может быть 216.58.206.142. Мы не можем запоминать этот номер каждый раз, когда хотим связаться с Google. Вот почему у нас есть почтовый индекс, эквивалентный веб-сайту, которым в нашем случае является google.com.

Браузер может подключиться к веб-сайту, только если ему известен его IP-адрес.

Браузеру необходимо знать IP-адрес веб-сайта, если он хочет подключиться к веб-сайту. Чтобы знать, что он ищет систему под названием DNS (система именования доменов). Чтобы просто понять, это таблица, содержащая URL-адрес веб-сайта и его IP-адрес.

Поиск DNS:

Для загрузки веб-сайта браузеру необходим IP-адрес. Чтобы узнать IP-адрес, необходимо выполнить поиск в DNS. В браузере есть собственный кеш таблицы поиска DNS. Поэтому, прежде чем куда-либо идти, он сначала проверяет, есть ли в таблице запись для веб-сайта, который мы хотим загрузить, а именно google.com. Если вы уже просматривали веб-сайт Google раньше, очень высока вероятность того, что IP-адрес Google будет в его кэше DNS. Для аргументации предположим, что IP-адрес Google недоступен в кеше браузера. Разберемся, что будет в таком случае.

Теперь браузер запрашивает у ОС IP-адрес google.com. Браузер проверит их внутренний файл с именем hosts. Он содержит IP-адреса веб-сайтов. Вы можете просмотреть файл hosts, перейдя по пути \etc\hosts, если вы используете Mac. Если вы используете окна, вы можете просмотреть его по этому пути C:\Windows\System32\drivers\etc\hosts. В большинстве случаев в нем не будет никаких записей, если вы или какие-либо другие программы, которые вы используете, не изменят этот файл. Что произойдет, если IP-адрес google.com также недоступен в этом файле?

Если он недоступен в файле hosts, браузер отправляет сетевой запрос на DNS-сервер, настроенный на машине. Когда вы подключаетесь к Интернету, DNS-сервер обычно настраивается вашим интернет-провайдером. Например, 4.4.4.4, 8.8.8.8 - это примеры IP-адреса DNS-сервера. (DNS-сервер также имеет IP-адрес). Браузер подключается к IP-адресу DNS-сервера и запрашивает IP-адрес google.com.

Поскольку веб-сайтов миллиарды, не все DNS-серверы имеют все IP-адреса веб-сайтов. DNS-серверы образуют сеть, и если IP-адрес веб-сайта недоступен, DNS-сервер запрашивает серверы в своей иерархии и получает подробную информацию. И если IP-адрес не может быть найден, то DNS-сервер возвращает ошибку, и браузер также отображает ошибку. Это происходит, когда вы пытаетесь открыть несуществующий веб-сайт в своем браузере (например, попробуйте этот URL: http://ThisSiteDoesNotExistSoNoIPAddress.com/), вы получите сообщение об ошибке, подобное приведенному ниже:

Возвращаясь к нашему примеру, поскольку google.com является допустимым сайтом, один из DNS-серверов обязательно вернет IP-адрес сайта. Предположим, что DNS-сервер возвращает IP-адрес 216.58.206.142. Браузер открывает соединение с указанным выше IP-адресом для загрузки google.com. Хотя может показаться, что для получения IP-адреса требуется довольно много усилий, описанный выше процесс обычно завершается за миллисекунды, поэтому мы этого не замечаем.

Вот краткая диаграмма вышеуказанного процесса

В следующем посте мы увидим, что происходит после установления соединения с IP-адресом google.com. А пока оставайтесь любопытными и счастливыми учиться.