Модель взаимодействия “Клиент - Сервер”

Доброе время суток участники образовательной IT площадки GeekSpace. Меня зовут Юрий Сиротенко и тема сегодняшнего конспекта “Модель взаимодействия Клиент - Сервер”.

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

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

В рамках курса “Введение в HTML” я рассказывал о том “Что происходит когда вы открываете веб сайт”. Настоятельно рекомендую посмотреть это урок для более лучшего понимания текущего материала.

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

Клиент и сервер физически представляют собой программы, например, типичным клиентом является браузер. В качестве сервера можно привести такие примеры как: все HTTP сервера (Apache, Nginx), Сервера баз данных (MySQL, postgresql), файловый сервер (Samba) и многие другие.

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

Приведу пример: есть программное обеспечение Apache - и оно является веб сервером. Но зачастую когда Apache устанавливают на машину, то этот самый компьютер начинают также называть веб сервером.

Назревает вопрос. Так зачем вообще нужна это программа, которая зовется веб сервером? Веб-сервер принимает запросы, которые были отправлены клиентом (обычно браузером), понимает их, анализирует и отвечает клиенту. Давайте посмотрим на схему для более точного понимания:

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

Протокол передачи данных - это некий свод правил, следуя которым данные отправляются и принимаются.

Давайте проведем пусть немного грубую и не совсем точную, но все же аналогию с реальным миром для того чтобы понять, что такое протокол. Предположим вы пытаетесь спросить иностранца - который сейчас час и вы заведомо знаете, что он не понимает русский язык. Также иностранец стоит за 5 шагов от вас. Вы понимаете, что вам нужно повысить тон голоса и спросить его на английском языке. Если одно из правил будет нарушено, то иностранец вас не поймет либо по причине незнания языка, на котором вы спрашиваете, либо потому, что вы слишком тихо спросили.

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

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

Локальный веб сервер - тот же самый веб сервер, только он будет расположен не где-то далеко, а у вас же на компьютере. Чтобы начать разрабатывать веб проекты нет необходимости сразу же арендовать веб-сервера, покупать доменные имена, как было сказано ранее, достаточно на первом этапе развернуть всю схему на вашем же компьютере.

Давайте посмотрим на схему как работает локальный веб сервер:

Пользователь вводит в адресную строку веб браузера доменное имя my-site.net.
Как говорилось в уроке “Что происходит когда вы открываете веб - сайт” на курсе “Введение в HTML”, файл hosts имеет приоритет перед обращением к DNS-серверам, поэтому браузер, а точнее служба операционной системы по просьбе браузера просмотрит файл hosts.

На схеме выше доменному имени my-site.net соответствует ip адрес 127.0.0.1 - то есть эта же машина, локальная машина или просто localhost (так называемый, “локальный хост”, по смыслу - этот компьютер). Браузер получив от службы операционной системы ip адрес нашей же машины, направляет HTTP запрос на порт 80 и если на вашем компьютере установлен веб сервер и он запущен и “висит” на 80 порту, то запрос будет успешно принят, обработан и отправлен HTTP ответ обратно браузеру.

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

Дополнительные материалы

Информация

Автор конспекта


Дата создания: 15.01.2019
Категория: Веб-разработка