Компоненты и схема клиент-серверной архитектуры для чайников
Всем привет! Давайте поговорим с вами про «подкапотное» устройство веб-продуктов, а если проще – клиент-серверную (или трехзвенную) архитектуру.
Из названия понятно, что есть клиент и сервер. Клиент – это не живой человек. В нашем случае – это ваш браузер (Chrome, Opera, Safari), если мы говорим про web, и программа на вашем компьютере, если говорим про desktop.
А сервер – это некое хранилище нужной (или не очень) информации и внутреннее устройство приложения. Сюда за информацией обращается клиент.
А еще есть база данных – что-то вроде упорядоченных полок в библиотеке, куда обращается сервер, получивший запрос от клиента. Сложно? Давайте упростим и рассмотрим бытовой пример.
Вы пришли в магазин с определённым списком продуктов (запросом). В данном случае клиентом будете вы. Вам нужно купить помидоры, огурцы, банку растительного масла.
Продавец будет у нас сервером, то есть он будет ваш запрос обрабатывать и отвечать вам.
Вот вы пришли, сделали к серверу запрос (взвесьте мне кило того, кило другого и достаньте воо-он ту банку масла с самой верхней полки).
Сервер (продавец) ваш запрос обрабатывает, выполняет, дает вам помидоры, огурцы и масло. Продуктовые прилавки или полки в нашем случае – это база, в ней хранится информация (продукты). Именно туда обращается сервер (продавец), чтобы выполнить ваш запрос.
Сервер (продавец) может общаться с несколькими клиентами и обрабатывать несколько запросов. Кроме того, серверы (продавцы) могут еще и между собой общаться и обмениваться информацией.
Другой пример – уже про нашу с вами сферу. Пользователь интернет-магазина решил купить новый телефон. Окей: он открывает интернет-браузер Google Chrome (клиент), там открывает нужный сайт магазина, находит нужную ему модель телефона и кликает по кнопке «Добавить в корзину». На этом моменте сервер получает от клиента запрос на телефон, обращается к базе: «База, дорогая, а у нас есть в наличии этот вот телефон, который хочет пользователь?».
На SQL это обращение выглядит примерно так: Select brand, model, stock from mobiles where brand = ‘Нужный нам бренд телефона’ and model = ‘Нужная модель телефона’ and stock = ‘1’.
База проверяет информацию и выдает ответ на сервер: «Да, такой вот товар такой вот модели есть на складе, можно покупать», сервер передает информацию на клиент о том, что по товару все в порядке, кнопка «Добавить в корзину» превращается в надпись «В корзине», и товар попадает в корзину пользователя.
Вместо итогов
Клиент – это программа, с которой работает пользователь, это может быть ваш интернет-браузер или десктоп-программа, установленная на ваш локальный компьютер или ноутбук.
Сервер – удаленная машина или мощный компьютер, на котором хранится вся логика, код, некое хранилище информации.
База данных – что-то вроде библиотеки данных, упорядоченных по таблицам.
Надеюсь, после прочтения этой статьи вы стали понимать «подкапотную» структуру веб-приложений и словами «трехзвенная архитектура» вас теперь не напугать!
Интервью с выпускниками ПОИНТ, получившими оффер, можно почитать здесь:
Сергей Кушниров в 35 лет решился сменить профессию: раньше он работал на улице в любых погодных условиях, а образование получил еще в 2006 году. После выгорания на работе в 2020 Сергей выбрал курс «Первый Онлайн ИНститут Тестировщиков» (ПОИНТ) и не прогадал… Читать интервью с Сергеем Кушнировым
Ядвига по образованию редактор, работала офис-менеджером. На одном из воркшопов услышала о тестировании ПО и решила пройти курс «Первый Онлайн ИНститут Тестировщиков». Вскоре после его окончания она получила оффер… Читать интервью с Ядвигой