Здесь вы получите простой обзор процесса, происходящего при открытии веб-страницы в вашем браузере, будь то на компьютере или телефоне.
На начальных этапах разработки веб-кода эти знания могут показаться несущественными. Однако в дальнейшем понимание того, что происходит в закулисье, окажется весьма полезным.
Клиенты и серверы
Компьютеры в сети делятся на клиентов и серверы. Их взаимодействие можно представить в виде простой схемы:
- Клиенты – это пользователи, подключенные к Интернету посредством устройств, таких как компьютер через Wi-Fi, или мобильный телефон. На устройствах установлено программное обеспечение, обычно браузеры, например, Firefox или Chrome.
- Серверы – это компьютеры, где хранятся веб-страницы, сайты или приложения. Когда клиент пытается открыть веб-страницу, сервер отправляет ее копию клиентскому устройству для отображения в браузере.
Другие элементы веб-системы
Клиенты и серверы – это только часть общей системы. Существует множество других компонентов, которые мы охватим далее.
Представьте Веб как дорогу. С одной стороны располагается клиент – ваш дом, с другой стороны сервер – магазин, в который вы хотите прийти за покупками.
Кроме клиента и сервера учтите следующее:
- Ваше Интернет-подключение: Предоставляет возможность обмениваться данными через сеть, выполняя роль дороги между домом и магазином.
- TCP/IP: Протоколы передачи, которые определяют, как осуществляется доставка данных по сети. Они, как средства передвижения, помогают сделать заказ и добраться до магазина. Будь то автомобиль, велосипед или пеший ход.
- DNS: Словно адресная книга для сайтов. При вводе веб-адреса в браузере, обращение происходит к DNS для нахождения реального адреса сайта. Это необходимо, чтобы понять, на каком сервере размещен сайт, и соответственно отправить HTTP-запрос по нужному маршруту. Процесс схож с поиском местоположения магазина.
- HTTP: Протокол обмена, определяющий правила взаимодействия клиентов и серверов, напоминает о языке, на котором вы общаетесь в магазине.
-
Файлы компонентов: Состоит из разнообразных файлов, отражающих ассортимент товаров в магазине. Этот набор включает следующие типы:
- Файлы кода: основной строительный материал сайтов, представленный HTML, CSS и JavaScript.
- Материалы: это все остальные элементы сайта: изображения, аудиозаписи, видео, документы.
Как протекает процесс открытия страницы?
Когда вы вводите веб-адрес в браузере (или "заходите в магазин"):
- Браузер обращается к DNS, чтобы определить IP-адрес сервера, где "живет" сайт (аналогия с поиском адреса магазина).
- Браузер отправляет HTTP-запрос к серверу, запрашивая у него отправить клиенту копию сайта (вы оформляете заказ в магазине). Все взаимодействия между клиентом и сервером происходят через интернет с помощью протоколов TCP/IP.
- Если сервер одобряет запрос, он отправляет клиенту статус "200 ОК", что означает разрешение на доступ к сайту, и начинает передавать файлы частями в браузер (товар доставляется к вам домой).
- Браузер объединяет эти небольшие части в целостный сайт и отображает вам его (как доставленный товар).
Система доменных имен (DNS)
Веб-адреса могут быть сложными и труднозапоминаемыми комбинациями цифр, которые мы вводим в строку браузера, чтобы добраться до интернет-ресурсов. Такие последовательности представляют собой IP-адреса (например, 63.245.215.20).
Назначение IP-адресов уникально и указывает на местоположение в Интернете. Однако они не всегда легкодоступны для памяти. По этой причине и был внедрен DNS, который позволяет ассоциировать читаемый адрес (как "mozilla.org") с соответствующим IP. Таким образом, браузер может определить, на каком сервере расположен сайт.
Обратиться к сайтам можно напрямую по их IP-адресам. Для этого можно воспользоваться IP Checker, введя доменное имя сайта.
Передача данных в виде пакетов
Мы упоминали термин "пакеты" в контексте передачи данных между сервером и клиентом. Давайте уточним: информация через Интернет передается в виде множества маленьких частей, что позволяет множеству пользователей одновременно скачивать один и тот же ресурс. Если бы сайты передавались крупными фрагментами, доступ мог бы быть ограничен для последовательных пользователей, существенно снижая эффективность обмена данными через Интернет.