Вы когда-нибудь задумывались о внутренней работе Интернета? Мы часто обращаемся к браузерам как к источнику информации. Всякий раз, когда возникает любопытство, наш первый инстинкт — набрать текст и выполнить поиск в браузере. В то время, когда человеческие связи могут быть сложными, удивительно, как простое ключевое слово браузера может улучшить понимание. Но прежде чем мы углубимся в механику Интернета, давайте сначала проясним: что такое «сеть»?

Термин «Интернет» в контексте технологий обычно означает «Всемирную паутину» или просто «WWW».

Всемирная паутина (часто называемая просто «Сеть») – это система взаимосвязанных гипертекстовых документов и мультимедийного контента, доступ к которым осуществляется через Интернет с помощью веб-браузеров. Это часть Интернета; Хотя вся сеть находится в Интернете, не все в Интернете является ее частью.

Теперь давайте обсудим, как работает Интернет?

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

Как это делается?

Шаг 1. Ввод пользователя

Пользователь укажет URL (унифицированный указатель ресурса) или щелкнет ссылку на веб-странице. Обычно URL-адрес состоит из используемого протокола, имени домена, порта (необязательно), пути, параметра запроса (необязательно) и т. д.

например: - https://www.example.com:8080/articles/how-to-cook.html?q=searchterm#section2

Шаг 2. Разрешение DNS

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

Шаг 3. Браузер инициирует соединение

Мы знаем, что у браузера есть клиент и сервер, клиент — это тот, кто отправляет запросы серверу, а сервер дает ответ клиенту. Для инициации соединения между клиентом и сервером используется трехстороннее рукопожатие. Трехстороннее рукопожатие является частью TCP (протокола управления передачей). Как работает трехстороннее рукопожатие?

СИН:

  • Клиент (в данном контексте веб-браузер) отправляет TCP-пакет с установленным флагом SYN (синхронизация).
  • Это означает намерение клиента установить соединение.
    При этом клиент отправляет порядковый номер, назовем его «X».

SYN-ACK:

  • После получения пакета SYN сервер отвечает пакетом TCP с установленными флагами SYN и ACK (подтверждение).
  • Номер подтверждения установлен на «X+1», что подтверждает порядковый номер клиента.
  • Сервер также отправляет свой собственный порядковый номер, назовем его «Y».

ПОДТВЕРЖДЕНИЕ:

  • Затем клиент отвечает серверу TCP-пакетом с установленным флагом ACK.
  • Номер подтверждения установлен на «Y+1», что подтверждает порядковый номер сервера.
  • На этом этапе соединение установлено и можно начинать передачу данных.

Шаг 4. HTTP-запрос

После установления соединения клиент отправит запрос на сервер. Запрос HTTP (протокол передачи гипертекста) — это сообщение, отправляемое клиентом (обычно веб-браузером) на веб-сервер с запросом какой-то тип ресурса. Этим ресурсом может быть веб-страница, изображение, видео, таблица стилей, сценарий или любой другой тип контента, доступ к которому можно получить через Интернет. Сервер обрабатывает этот запрос и затем отправляет обратно соответствующий ответ. Этот запрос включает путь к желаемому ресурсу, метод HTTP (GET, POST, PUT, DELETE и т. д.) и другие заголовки, которые могут предоставлять дополнительную информацию.

Шаг 5. Обработка на сервере

Как только сервер получает запрос, начинается его обработка. «Серверная обработка» — это широкий термин, который относится ко всем операциям, которые выполняет сервер для обработки входящих запросов и получения соответствующих ответов. Это может включать в себя все: от простого поиска файлов до сложных запросов к базе данных и обработки транзакций. После получения HTTP-запроса веб-сервер, используя такое программное обеспечение, как Apache или Nginx, определяет метод обработки. Для динамического контента это часто означает маршрутизацию запроса к определенному скрипту или приложению, например PHP-скрипту или приложению Node.js. Затем это приложение может взаимодействовать с базой данных для получения или изменения данных.

Шаг 6. HTTP-ответ

Сервер возвращает HTTP-ответ, который содержит код состояния, например 200 OK, 404 Not Found или 500 Internal Server Error. Код состояния сопровождается заголовками, содержащими метаданные об ответе, и телом, которое обычно доставляет запрошенные данные или содержимое веб-страницы.

Шаг 7. Отрисовка в браузере

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

Шаг 8. Показ пользователю

Отрисованная страница отображается пользователю в окне браузера. Когда мы обсуждаем «отображаемую страницу», мы говорим о конечном продукте интерпретации браузером HTML, CSS, JavaScript и любых других ресурсов, которые способствуют внешний вид и функциональность веб-страницы. Если страница содержит интерактивные элементы (например, формы или кнопки), пользователь может инициировать последующие запросы, перезапуская этот процесс.

Шаг 9. Закрытие соединения

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

Шаг 10. Дополнительные ресурсы

Если главная HTML-страница ссылается на внешние ресурсы (изображения, файлы CSS, JavaScript), браузер выполнит отдельные HTTP-запросы для их получения. Эти дополнительные запросы будут проходить тот же цикл, что и выше.

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