1. Введите www.google.com в адресную строку браузера.
2. Браузер проверяет кеш на наличие записи DNS, чтобы найти соответствующий IP-адрес www.google.com.
- DNS (система доменных имен) — это база данных, которая поддерживает имя веб-сайта (URL) и конкретный IP-адрес, на который он ссылается. Каждому URL-адресу в Интернете присвоен уникальный IP-адрес.
- Например, www.google.com имеет IP-адрес 209.85.227.104. Поэтому, если хотите, вы можете перейти на www.google.com, набрав в браузере http://209.85.227.104.
- Основной целью DNS является удобная навигация. Вы можете легко получить доступ к веб-сайту, введя правильный IP-адрес в своем браузере, но представьте себе, что вам нужно запоминать разные наборы номеров для всех сайтов, к которым мы регулярно обращаемся? Таким образом, проще запомнить название веб-сайта, используя URL-адрес, и позволить DNS сделать всю работу за нас, сопоставив его с правильным IP-адресом.
- Чтобы найти запись DNS, браузер проверяет четыре кеша.
Сначала он проверяет кеш браузера. Браузер поддерживает репозиторий записей DNS в течение фиксированного периода времени для веб-сайтов, которые вы ранее посещали. Таким образом, это первое место для запуска DNS-запроса.
Во-вторых, браузер проверяет кэш ОС. Если ее нет в кеше браузера, браузер выполнит системный вызов (т. е. gethostname в Windows) к операционной системе вашего компьютера, чтобы получить запись, поскольку ОС также поддерживает кеш DNS-записей.
В-третьих, он проверяет кэш маршрутизатора. Если его нет на вашем компьютере, браузер будет связываться с маршрутизатором, который поддерживает собственный кеш DNS-записей.
В-четвертых, он проверяет кэш интернет-провайдера. Если все шаги не пройдены, браузер перейдет к интернет-провайдеру. Ваш интернет-провайдер поддерживает свой собственный DNS-сервер, который включает в себя кеш DNS-записей, которые браузер будет проверять в последней надежде найти запрошенный URL-адрес.
3. Если запрошенный URL-адрес отсутствует в кэше, DNS-сервер интернет-провайдера инициирует DNS-запрос, чтобы найти IP-адрес сервера, на котором размещен www.google.com.
- Целью DNS-запроса является поиск нескольких DNS-серверов в Интернете, пока не будет найден правильный IP-адрес веб-сайта.
4. Браузер инициирует TCP-соединение с сервером.
- Как только браузер получит правильный IP-адрес, он установит соединение с сервером, соответствующим IP-адресу, для передачи информации.
- Браузеры используют интернет-протоколы для создания таких соединений.
- Существует несколько различных интернет-протоколов, которые можно использовать, но TCP является наиболее распространенным протоколом, используемым для многих типов HTTP-запросов.
- Для передачи пакетов данных между вашим компьютером (клиентом) и сервером важно установить TCP-соединение.
- Это соединение устанавливается с помощью процесса, называемого трехэтапным рукопожатием TCP/IP. Это трехэтапный процесс, при котором клиент и сервер обмениваются сообщениями SYN (синхронизация) и ACK (подтверждение) для установления соединения. связь.
1. Клиентская машина отправляет пакет SYN на сервер через Интернет, запрашивая, открыт ли он для новых подключений.
2. Если у сервера есть открытые порты, которые могут принимать и инициировать новые соединения, он ответит ACKnowledgment пакета SYN, используя пакет SYN/ACK.
3. Клиент получит пакет SYN/ACK от сервера и подтвердит его отправкой пакета ACK.
- Затем устанавливается TCP-соединение для передачи данных!
5. Браузер отправляет HTTP-запрос на веб-сервер.
- Как только TCP-соединение установлено, пора начинать передачу данных!
- Браузер отправит запрос GET с запросом на веб-страницу maps.google.com.
- Если вы вводите учетные данные или отправляете форму, это может быть POST-запрос. Этот запрос также будет содержать дополнительную информацию, такую как идентификация браузера (заголовок User-Agent), типы запросов, которые он будет принимать (заголовок Accept), и заголовки соединения. с просьбой поддерживать соединение TCP для дополнительных запросов. Он также будет передавать информацию, полученную из файлов cookie, которые браузер хранит для этого домена.
6. Сервер обрабатывает запрос и отправляет ответ.
- Сервер содержит веб-сервер (например, Apache, IIS), который получает запрос от браузера и передает его обработчику запросов для чтения и генерации ответа.
- Обработчик запроса — это программа (написанная на ASP.NET, PHP, Ruby и т. д.), которая считывает запрос, его заголовки и файлы cookie, чтобы проверить, что запрашивается, а также при необходимости обновить информацию на сервере. Затем он соберет ответ в определенном формате (JSON, XML, HTML).
7. Сервер отправляет HTTP-ответ.
- Ответ сервера содержит запрошенную вами веб-страницу, а также код состояния, тип сжатия (Content-Encoding), способ кэширования страницы (Cache-Control), любой файлы cookie для установки, информация о конфиденциальности и т. д.
8. Браузер отображает содержимое HTML (для ответов HTML, что является наиболее распространенным).
- Браузер отображает содержимое HTML поэтапно.
- Во-первых, он отобразит голый HTML-скелет.
- Затем он проверит теги HTML и отправит запросы GET для дополнительных элементов на веб-странице, таких как изображения, таблицы стилей CSS, файлы JavaScript и т. д.
- Эти статические файлы кэшируются браузером, поэтому ему не нужно снова извлекать их при следующем посещении страницы. В конце концов, вы увидите, что www.google.com появляется в вашем браузере.
Вот и все!
Не стесняйтесь лайкать, комментировать или делиться этой статьей, если она была вам полезна :)
Спасибо за прочтение
- 👏 Пожалуйста, хлопайте в историю и подписывайтесь на меня 👉
- 📰 Посмотреть больше материалов на Интервью по кодированию и проектированию систем
- 🔔 Подпишитесь на меня: LinkedIn!
Я знаю, что всегда есть что улучшить. Пожалуйста, поделитесь своими мыслями