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

  1. Компьютер отправляет запрос на сервер системы доменных имен (DNS), который служит адресной книгой для всех доменных имен. Затем он возвращает точный IP-адрес сервера, на который указывает https://www.google.com.
  2. После получения IP-адреса компьютер устанавливает соединение с сервером, используя IP-адрес с использованием протокола управления передачей (TCP). Затем он устанавливает соединение с помощью процесса, известного как рукопожатие через Интернет-протокол (IP).
  3. После установления соединения браузер запрашивает веб-страницу через протокол шифрования, такой как Secure Sockets Layer (SSL) или Transport Layer Security (TLS), для шифрования общих данных. Это шифрование представлено s(secure) в https.
  4. Если компьютер находится за брандмауэром, он проверяет, разрешен ли сделанный запрос.
  5. Для компаний с множеством серверов и высоким трафиком используется балансировщик нагрузки для получения и назначения запросов серверам в зависимости от установленного алгоритма.
  6. Сервер получает запрос и отправляет ответ обратно, затем балансировщик нагрузки пересылает его обратно в браузер, состоящий из файлов HTML, CSS и Javascript.
  7. Файлы HTML сообщают, как содержимое страницы должно отображаться в браузере, а файл CSS сообщает браузеру, как стилизовать. Javascript отвечает за добавление интерактивности на страницу.
  8. Браузер рендерит страницу и отображает ее.

Система доменных имен (DNS) Запрос

DNS — это телефонная книга Интернета, которая переводит удобочитаемые доменные имена (например, www.amazon.com) в машиночитаемые IP-адреса (например, 192.0.2.44).

Когда доменное имя вводится в браузер, он сохраняет запись в своем кеше. Когда кто-то вводит доменное имя в браузер, браузер просматривает кеш в поисках последней копии.

Если копия отсутствует или запись DNS была обновлена, браузер запрашивает у DNS-сервера преобразование доменного имени в IP-адрес с помощью сложного процесса, выполняемого на разных этапах.

  1. Процесс поиска DNS

Браузер отправляет запрос локальному преобразователю DNS, часто предоставляемому интернет-провайдером (ISP). Локальный преобразователь DNS проверяет свой кэш на наличие самой последней копии записи DNS для домена. Он отправляет IP-адрес обратно в браузер, если он у него есть. Если у локального преобразователя DNS нет самой последней копии записи DNS, он отправляет запрос на корневой сервер имен. Корневой сервер имен отвечает адресом сервера имен домена верхнего уровня (TLD), например .com
Локальный преобразователь DNS отправляет запрос серверу имен TLD.
Сервер имен TLD отвечает адресом полномочного сервера имен для домена.
Локальный преобразователь DNS отправляет запрос полномочному серверу имен.
Полномочный сервер имен отвечает IP-адресом домена.
> Локальный преобразователь DNS отправляет IP-адрес обратно в браузер.
Браузер запрашивает сервер по IP-адресу для получения веб-страницы.

Продолжительность кэширования записи DNS определяется авторитетным сервером имен и называется временем жизни (TTL).

TCP/IP-соединение

TCP (протокол управления передачей) и IP (протокол Интернета) являются основными протоколами, из которых состоит Интернет.

Они работают вместе, чтобы установить соединение между клиентом и сервером и облегчить передачу данных между ними.

Когда вы вводите google.com в веб-браузере, браузер использует протокол TCP/IP для подключения к серверу, на котором размещен веб-сайт.

Вот что происходит более подробно:

  1. Браузер отправляет запрос на сервер, используя IP, для установления соединения.
  2. Сервер получает запрос и отправляет сообщение, подтверждающее запрос на установление соединения. Это процесс рукопожатия.
  3. После завершения рукопожатия браузер может отправить запрос на веб-страницу, к которой он хочет получить доступ (в данном случае это домашняя страница google.com). Этот запрос отправляется с использованием TCP, что гарантирует надежную передачу запроса и в правильном порядке.
  4. Сервер получает запрос и возвращает браузеру HTML-код домашней страницы google.com. Этот ответ также отправляется с использованием TCP для обеспечения надежной передачи.
  5. Браузер получает HTML-код для отображения веб-страницы на вашем экране. Любые ресурсы (например, изображения), необходимые веб-странице, также запрашиваются и принимаются с использованием TCP/IP.

Защита брандмауэра

Брандмауэр — это система безопасности, которая регулирует и контролирует входящий и исходящий сетевой трафик на основе заранее определенных политик безопасности. Его основная цель — защитить сеть от внешних угроз, таких как хакеры и вредоносное ПО.

Когда вы вводите URL-адрес, например «google.com», в свой браузер, запрос, который ваш браузер отправляет на сервер Google, по пути проходит через брандмауэр. Брандмауэр проверяет входящий запрос, чтобы убедиться, что он разрешен на основе его политик безопасности.

Существует два основных типа политик безопасности, которые брандмауэр использует для проверки входящих запросов:

  1. политики, которые разрешают или запрещают трафик в зависимости от источника и пункта назначения запроса. Например, брандмауэр может быть запрограммирован на блокировку всего трафика из определенных стран или на разрешение доступа к сети только определенным IP-адресам.
  2. политики, которые разрешают или запрещают трафик в зависимости от типа трафика. Например, брандмауэр может быть запрограммирован так, чтобы блокировать весь трафик через определенные порты (например, используемые вредоносными программами) или разрешать только определенные типы трафика (например, HTTP или HTTPS).

Если входящий запрос соответствует правилам безопасности, установленным брандмауэром перед сервером Google, он пропускается, и браузер может получить доступ к веб-сайту.

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

HTTPS/SSL

HTTPS (Hypertext Transfer Protocol Secure) — это безопасная версия протокола HTTP, используемая для передачи данных в Интернете. Он шифрует данные, передаваемые между вашим браузером и сервером Google.

SSL (Secure Sockets Layer) и TLS (Transport Layer Security) — это протоколы шифрования, используемые для защиты данных, передаваемых по HTTPS.

Когда ваш браузер устанавливает соединение с сервером Google с помощью HTTPS, ваш браузер и сервер Google сначала согласовывают используемую версию SSL/TLS, а затем создают безопасный зашифрованный канал для передачи данных.

Позвольте мне использовать аналогию, чтобы объяснить, что здесь происходит.

HTTPS похож на запертый ящик, используемый для отправки сообщений через Интернет. Когда вы хотите отправить сообщение с помощью HTTPS, вы кладете его в заблокированный ящик и отправляете человеку, которому хотите его получить. Только человек, которому вы отправляете сообщение, имеет ключ, чтобы открыть ящик и прочитать сообщение.

SSL/TLS — это специальные коды, используемые для блокировки и разблокировки ящика. Когда вы хотите отправить сообщение по протоколу HTTPS, вы и человек, которому вы отправляете сообщение, согласовываете код, который будет использоваться для блокировки и разблокировки ящика. Таким образом, только вы и человек, которому вы отправляете сообщение, знаете код и можете прочитать сообщение.

Когда вы вводите google.com в свой браузер, браузер похож на человека, отправляющего сообщение. Сервер, на котором размещен google.com, похож на человека, получающего сообщение. Браузер отправляет запрос на веб-страницу, используя HTTPS, что похоже на помещение запроса в запертый ящик и отправку его на сервер. Затем сервер отправляет веб-страницу обратно в браузер с помощью HTTPS, что похоже на помещение веб-страницы в заблокированный ящик и отправку ее обратно в браузер.

Балансировщик нагрузки

Балансировщик нагрузки — это устройство, распределяющее входящий сетевой трафик по группе серверов или ресурсов.

Его основная функция — обеспечить равномерное распределение трафика между серверами, чтобы избежать перегрузки любого отдельного сервера и повысить общую емкость и надежность системы.

Такой компании, как Google, которая ежедневно посещает миллиарды посетителей, потребуется много серверов для обслуживания всех этих пользователей. Поэтому им потребуется настроить балансировщик нагрузки, чтобы гарантировать, что некоторые серверы не перегружены, а другие недостаточно загружены.

В случае, если браузер пытается получить доступ к google.com, балансировщик нагрузки получит входящий запрос от браузера и затем перенаправит его на один из серверов в сети серверов Google. Конкретный выбранный сервер будет зависеть от типа реализованного алгоритма балансировки нагрузки.

веб сервер

Веб-сервер — это компьютерная программа, отвечающая за обработку запросов веб-страниц от клиентов (например, браузер, пытающийся получить доступ к google.com). Когда клиент отправляет запрос веб-страницы на веб-сервер, сервер обрабатывает запрос и возвращает соответствующий ответ клиенту.

Это означает, что при попытке доступа к google.com сервер Google получит запрос от балансировщика нагрузки.

Затем веб-сервер обработает запрос и сгенерирует ответ, который обычно включает файлы HTML, CSS и JavaScript, из которых состоит веб-страница.

Затем веб-сервер отправит этот ответ обратно балансировщику нагрузки, который перенаправит его в браузер. Затем браузер будет использовать файлы HTML, CSS и JavaScript для отображения веб-страницы для пользователя.

Сервер приложений и база данных (если применимо)

В отличие от веб-сервера, сервер приложений обрабатывает динамический контент. При использовании google.com сервер приложений будет отвечать за генерацию результатов поиска (которые меняются в зависимости от запроса, который вы вводите в поисковую систему).

Когда вы отправляете поисковый запрос в Google, запрос сначала отправляется балансировщику нагрузки, который перенаправляет его на один из веб-серверов в сети серверов Google. Затем веб-сервер отправляет запрос на сервер приложений, который обрабатывает запрос и генерирует результаты поиска.

В зависимости от сложности поискового запроса серверу приложений может потребоваться сделать запрос к базе данных, чтобы получить необходимые данные.

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

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

Отрисовка страницы

Когда браузер получает ответ от веб-сервера, он обрабатывает файлы HTML, CSS и JavaScript, включенные в ответ, для отображения веб-страницы.

Процесс рендеринга включает в себя интерпретацию кода HTML и CSS, рендеринг любых изображений или других медиафайлов, включенных в страницу, и выполнение любого кода JavaScript, присутствующего на странице.

В вашем случае ваш браузер получит ответ от веб-сервера, который включает в себя файлы HTML, CSS и JavaScript, составляющие веб-страницу Google.

Затем браузер будет использовать эти файлы для рендеринга страницы и отображения ее вам. Этот процесс обычно включает в себя следующее:

  • отображение текста и изображений на странице в соответствующих позициях
  • форматирование текста и макета в соответствии со стилями CSS
  • выполнение любого кода JavaScript, присутствующего на странице

После того, как страница будет полностью отрисована, вы можете взаимодействовать с ней, щелкая ссылки, вводя текст или взаимодействуя с другими элементами на странице.

Заключение

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