https://i2.wp.com/miro.medium.com/max/750/1*qohDtMWQwQGy6NbKIHVMYA.png

Что происходит, когда вы вводите www.google.com в браузере и нажимаете Enter?

В этой статье мы собираемся обсудить за кулисами, что происходит, когда мы ищем URL-адрес (унифицированный указатель ресурсов), такой как https://www.google.com, в браузере, таком как Chrome. Это то, что мы делаем практически каждый день, и процесс, стоящий за этой простой задачей, которая занимает всего несколько секунд, намного сложнее, чем вы себе представляете.

Объяснение некоторых ключевых понятий для понимания процесса

Прежде всего, важно понимать следующие понятия:

веб-страница: документ, который можно отобразить в веб-браузере, таком как Firefox, Google Chrome, Opera, Microsoft Internet Explorer или Edge или Safari от Apple. Их также часто называют просто «страницами».

веб-сайт: Набор веб-страниц, которые сгруппированы вместе и обычно связаны различными способами. Часто называется «веб-сайтом» или «сайтом».

веб-сервер: компьютер, на котором размещен веб-сайт в Интернете.

Сайт понимает то, что называется HTML (HyperText Markup Language). Таким образом, эти «страницы» расположены на компьютерах (веб-серверах), которые предоставляют услугу хранения указанных файлов и ожидания того, что кто-то запросит у них доставку контента. Они называются серверами, потому что их цель — предоставить контент, который они хранят, тому, кто его попросит.

Существуют различные типы серверов, такие как: серверы баз данных, файловые серверы, почтовые серверы, серверы печати, веб-серверы, игровые серверы и серверы приложений. В этой статье мы сосредоточимся в основном на веб-серверах и немного на серверах приложений. Серверы приложений также можно использовать в качестве веб-серверов, но их основная задача заключается в обеспечении взаимодействия между клиентами конечных пользователей и кодом приложения на стороне сервера. Код представляет собой то, что часто называют бизнес-логикой для создания и доставки динамического содержимого, такого как результаты транзакций, поддержка принятия решений или аналитика в реальном времени.

HTTP: протокол передачи гипертекста — это прикладной протокол, определяющий язык, на котором клиенты и серверы общаются друг с другом.

IP-адрес (интернет-протокол): для идентификации каждого устройства во всемирной паутине Управление по присвоению номеров в Интернете (IANA) присваивает IP-адрес в качестве уникального идентификатора каждому устройству в Интернете.

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

TCP/IP: протокол управления передачей и интернет-протокол — это протоколы связи, которые определяют, как данные должны передаваться через Интернет. Это часть модели OSI (Взаимодействие открытых систем), которая представляет собой концептуальную и логическую модель, описывающую универсальный стандарт коммуникационных функций телекоммуникационной системы. TCP/IP является частью транспортного уровня (уровень 4) в модели OSI.

Брандмауэр: это разделение между частной сетью и внешней сетью (например, Интернетом). Разрешайте, ограничивайте и блокируйте сетевой трафик на основе предварительно настроенных правил в аппаратном или программном обеспечении, анализируя пакеты данных, которые запрашивают вход в сеть. Помимо ограничения доступа к компьютерам и сетям.

SSL (Secure Sockets Layer): это протокол, который использует так называемую «асимметричную» систему инфраструктуры открытых ключей (PKI). Если веб-страница, которую вы посещаете, имеет сертификат SSL (вы должны искать значок замка рядом с URL-адресом), это означает, что связь между вами и браузером защищена. Является частью уровня представления (уровень 2) модели OSI, описанной выше. Поэтому, когда веб-страница использует HTTPS (защищенный протокол передачи гипертекста), это означает, что она имеет сертификат SSL и ваше общение защищено.

Балансировщик нагрузки: это то, что широко используется крупными корпорациями, чтобы иметь возможность удовлетворить большой объем трафика через свои веб-страницы, а также как способ смягчения SPOF (единая точка отказа). Назначение балансировщика нагрузки — распределять входящий трафик между несколькими серверами, что повышает эффективность, надежность и доступность вашего сайта. Если один веб-сервер внезапно выходит из строя, этот специальный сервер (сам балансировщик нагрузки является сервером) автоматически перенаправляет трафик на остальные веб-серверы.

Веб-сервер: программное обеспечение, которое доставляет содержимое веб-страниц.

База данных: используются для хранения, обслуживания и доступа к любым данным. В этой статье я расскажу о СУБД (системах управления реляционными базами данных), таких как MySQL.

Фактический процесс

Итак, теперь, после краткого объяснения некоторых ключевых понятий, мы можем поговорить о том, что происходит, когда мы пытаемся получить доступ к URL-адресу Google.

Итак, что происходит, когда вы вводите: https://www.google.com в своем веб-браузере:

  • Браузер обращается к DNS-серверу и находит реальный адрес (IP-адрес) сервера, на котором живет веб-сайт.
  • Как только IP-адрес известен, браузер отправляет HTTP-запрос (GET-запрос) на IP-адрес, чтобы получить содержимое сайта по протоколу TCP/IP.
  • Запрос проверяется брандмауэром сервера, чтобы убедиться, что все в порядке и нет никаких нарушений безопасности.
  • Как только сервер (веб-сервер) получает запрос, отправленный браузером после прохождения через брандмауэр, балансировщик нагрузки (сервер), если он есть, отвечает на запрос, отправляя данные (также по протоколу TCP/IP) вместе с сертификатом SSL, чтобы инициировать безопасный сеанс через HTTPS.
  • Наконец, информация получена веб-браузером, который сделал запрос, и теперь информация (обычно: HTML, CSS и JavaScript) интерпретируется и отображается браузером, показывая окончательный результат, который является веб-сайтом, который вы запрашивали, в в этом случае: www.google.com

Это простое объяснение процесса, мы можем часами говорить о каждом пункте, который был объяснен выше, но он служит для того, чтобы понять, что происходит за кулисами, когда вы ищете URL-адрес в браузере.