0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Представьте, что вы хотите заказать продукты домой через сайт магазина. Для этого вы заходите на сайт, выбираете товары, кладете их в корзину, заполняете данные о доставке, оплачиваете и ждете продукты.</p>
1
<p>Представьте, что вы хотите заказать продукты домой через сайт магазина. Для этого вы заходите на сайт, выбираете товары, кладете их в корзину, заполняете данные о доставке, оплачиваете и ждете продукты.</p>
2
<p>Данные о вашей покупке посылаются на сайт магазина, который находится на специальном компьютере - сервере, а вы являетесь клиентом.</p>
2
<p>Данные о вашей покупке посылаются на сайт магазина, который находится на специальном компьютере - сервере, а вы являетесь клиентом.</p>
3
<p>В этом уроке мы узнаем о клиент-серверной архитектуре - кто такой сервер и клиент и где лежат все сайты в интернете. Также разберемся, почему приложения дублируются на нескольких серверах сразу и кто такой балансировщик.</p>
3
<p>В этом уроке мы узнаем о клиент-серверной архитектуре - кто такой сервер и клиент и где лежат все сайты в интернете. Также разберемся, почему приложения дублируются на нескольких серверах сразу и кто такой балансировщик.</p>
4
<h2>Клиент-серверная архитектура и ее компоненты</h2>
4
<h2>Клиент-серверная архитектура и ее компоненты</h2>
5
<p>Приложениями и сайтами одновременно могут пользоваться сотни и даже миллионы человек. Все они обращаются к одному компьютеру, который должен уметь обрабатывать запросы и присылать ответы. Такой подход называется<strong>клиент-серверной архитектурой</strong>. Она описывает, как происходит работа с пользователями, где хранятся данные и как обеспечивается их защита.</p>
5
<p>Приложениями и сайтами одновременно могут пользоваться сотни и даже миллионы человек. Все они обращаются к одному компьютеру, который должен уметь обрабатывать запросы и присылать ответы. Такой подход называется<strong>клиент-серверной архитектурой</strong>. Она описывает, как происходит работа с пользователями, где хранятся данные и как обеспечивается их защита.</p>
6
<p>В клиент-серверной архитектуре используется три компонента:</p>
6
<p>В клиент-серверной архитектуре используется три компонента:</p>
7
<ul><li><strong>Клиент</strong>- программа, которую мы используем в интернете. Чаще всего это браузер, но может быть и другая отдельная программа</li>
7
<ul><li><strong>Клиент</strong>- программа, которую мы используем в интернете. Чаще всего это браузер, но может быть и другая отдельная программа</li>
8
<li><strong>Сервер</strong>- компьютер, на котором хранится сайт или приложение. Когда мы заходим на сайт магазина, мы обращаемся к серверу, на котором находится сайт</li>
8
<li><strong>Сервер</strong>- компьютер, на котором хранится сайт или приложение. Когда мы заходим на сайт магазина, мы обращаемся к серверу, на котором находится сайт</li>
9
<li><strong>База данных</strong>- программа, в которой хранятся все данные приложения. Для магазина это будет база клиентов, товаров и заказов</li>
9
<li><strong>База данных</strong>- программа, в которой хранятся все данные приложения. Для магазина это будет база клиентов, товаров и заказов</li>
10
</ul><p>Разберем подробнее особенности каждого компонента клиент-серверной архитектуры и их взаимодействие друг с другом.</p>
10
</ul><p>Разберем подробнее особенности каждого компонента клиент-серверной архитектуры и их взаимодействие друг с другом.</p>
11
<h3>Особенности клиента</h3>
11
<h3>Особенности клиента</h3>
12
<p>Клиент - это всегда программа. Ее назначение - дать пользователю удобный способ взаимодействия с сервером.</p>
12
<p>Клиент - это всегда программа. Ее назначение - дать пользователю удобный способ взаимодействия с сервером.</p>
13
<p>С точки зрения сервера, выбрать товар - это послать запрос на специальном языке запросов, например SQL. Но для простого пользователя это сложно. Поэтому клиент дает удобный способ взаимодействия, чтобы не писать код своими руками.</p>
13
<p>С точки зрения сервера, выбрать товар - это послать запрос на специальном языке запросов, например SQL. Но для простого пользователя это сложно. Поэтому клиент дает удобный способ взаимодействия, чтобы не писать код своими руками.</p>
14
<p>В следующих уроках мы познакомимся с работой сайтов и узнаем, что зайти на сайт - это не просто ввести его адрес в браузер. За этим действием скрываются специальные запросы, ответы и их расшифровка. Для пользователя - это лишнее, и клиент в виде браузера делает эту работу за нас.</p>
14
<p>В следующих уроках мы познакомимся с работой сайтов и узнаем, что зайти на сайт - это не просто ввести его адрес в браузер. За этим действием скрываются специальные запросы, ответы и их расшифровка. Для пользователя - это лишнее, и клиент в виде браузера делает эту работу за нас.</p>
15
<h3>Особенности сервера</h3>
15
<h3>Особенности сервера</h3>
16
<p>Сервер - компьютер, такой же как у нас, только намного мощнее. Основная задача сервера - бесперебойная работа и возможность обрабатывать миллионы запросов от пользователей.</p>
16
<p>Сервер - компьютер, такой же как у нас, только намного мощнее. Основная задача сервера - бесперебойная работа и возможность обрабатывать миллионы запросов от пользователей.</p>
17
<p>Сервер позволяет не дублировать приложения. Без него для заказа продуктов пришлось бы скачать весь сайт к себе на компьютер, выбрать товары, записать их и отправить на компьютер магазина. Так как сайт находится на сервере, то тысячи человек могут обращаться к одному серверу и получать от него нужную информацию.</p>
17
<p>Сервер позволяет не дублировать приложения. Без него для заказа продуктов пришлось бы скачать весь сайт к себе на компьютер, выбрать товары, записать их и отправить на компьютер магазина. Так как сайт находится на сервере, то тысячи человек могут обращаться к одному серверу и получать от него нужную информацию.</p>
18
<p>Если сервер выполняет функции приложения и базы данных, то такая архитектура называется<strong>двухуровневой</strong>. Такой подход используют для небольших приложений, где нет большого количества клиентов. Хоть такой способ и проще, но его надежность небольшая. Если сервер взломают, то злоумышленники получат все данные.</p>
18
<p>Если сервер выполняет функции приложения и базы данных, то такая архитектура называется<strong>двухуровневой</strong>. Такой подход используют для небольших приложений, где нет большого количества клиентов. Хоть такой способ и проще, но его надежность небольшая. Если сервер взломают, то злоумышленники получат все данные.</p>
19
<p>Чтобы решить проблему безопасности в клиент-серверной архитектуре, используют базу данных. Она хранится отдельно от сервера. Сервер в этом случае выполняет роль логической машины, которая обрабатывает данные, но не хранит их.</p>
19
<p>Чтобы решить проблему безопасности в клиент-серверной архитектуре, используют базу данных. Она хранится отдельно от сервера. Сервер в этом случае выполняет роль логической машины, которая обрабатывает данные, но не хранит их.</p>
20
<h3>Особенности базы данных</h3>
20
<h3>Особенности базы данных</h3>
21
<p>В клиент-серверной архитектуре сервер - это не только компьютер, на котором находится приложение или сайт. Еще это база, где хранятся все данные приложения. У клиентов нет прямого доступа к базе данных, так как это нарушило бы их приватность. Например, частность личной информации других пользователей в социальных сетях.</p>
21
<p>В клиент-серверной архитектуре сервер - это не только компьютер, на котором находится приложение или сайт. Еще это база, где хранятся все данные приложения. У клиентов нет прямого доступа к базе данных, так как это нарушило бы их приватность. Например, частность личной информации других пользователей в социальных сетях.</p>
22
<p>Клиенты запрашивают информацию у сервера. Если сервер считает, что у клиента есть права на получение информации, то он ее предоставляет. Благодаря этому мы не можем пользоваться учетными записями своих друзей в социальных сетях или получать информацию о банковских переводах незнакомых нам людей.</p>
22
<p>Клиенты запрашивают информацию у сервера. Если сервер считает, что у клиента есть права на получение информации, то он ее предоставляет. Благодаря этому мы не можем пользоваться учетными записями своих друзей в социальных сетях или получать информацию о банковских переводах незнакомых нам людей.</p>
23
<p>При такой схеме работы архитектура называется<strong>трехуровневой</strong>, так как состоит из трех компонентов.</p>
23
<p>При такой схеме работы архитектура называется<strong>трехуровневой</strong>, так как состоит из трех компонентов.</p>
24
<p>Как и у любого решения, у клиент-сервера есть плюсы и минусы. Разберем частые случаи.</p>
24
<p>Как и у любого решения, у клиент-сервера есть плюсы и минусы. Разберем частые случаи.</p>
25
<h2>Плюсы и минусы клиент-серверной архитектуры</h2>
25
<h2>Плюсы и минусы клиент-серверной архитектуры</h2>
26
<p>В большинстве случаев минусы клиент-серверной архитектуры связаны с работоспособностью сервера или базы данных. Разработчики умеют решать большинство минусов, но не все так просто. Решение одних минусов приводит к другим, чаще всего к росту стоимости разработки и поддержки.</p>
26
<p>В большинстве случаев минусы клиент-серверной архитектуры связаны с работоспособностью сервера или базы данных. Разработчики умеют решать большинство минусов, но не все так просто. Решение одних минусов приводит к другим, чаще всего к росту стоимости разработки и поддержки.</p>
27
<p>Рассмотрим плюсы и минусы клиент-серверной архитектуры и начнем с хороших сторон.</p>
27
<p>Рассмотрим плюсы и минусы клиент-серверной архитектуры и начнем с хороших сторон.</p>
28
<h3>Плюсы</h3>
28
<h3>Плюсы</h3>
29
<ul><li>Отсутствие дублирования. Весь сайт или приложение хранится на одном компьютере-сервере. Это позволяет использовать его с разных устройств, будь то компьютер или мобильный телефон</li>
29
<ul><li>Отсутствие дублирования. Весь сайт или приложение хранится на одном компьютере-сервере. Это позволяет использовать его с разных устройств, будь то компьютер или мобильный телефон</li>
30
<li>Минимальные требования к пользователю. От него требуется только наличие программы-клиента. Для работы с сайтами достаточно иметь браузер</li>
30
<li>Минимальные требования к пользователю. От него требуется только наличие программы-клиента. Для работы с сайтами достаточно иметь браузер</li>
31
<li>Безопасность. Данные хранятся в базе данных и пользователи не могут их просматривать. Это обеспечивает безопасность для персональных данных</li>
31
<li>Безопасность. Данные хранятся в базе данных и пользователи не могут их просматривать. Это обеспечивает безопасность для персональных данных</li>
32
<li>Производительность. Серверы обычно производительнее, чем компьютеры пользователей. Это позволяет обрабатывать тысячи запросов от сотни разных пользователей одновременно. Например, этот урок на Хекслете может читать одновременно сотня человек и вы этого не заметите</li>
32
<li>Производительность. Серверы обычно производительнее, чем компьютеры пользователей. Это позволяет обрабатывать тысячи запросов от сотни разных пользователей одновременно. Например, этот урок на Хекслете может читать одновременно сотня человек и вы этого не заметите</li>
33
</ul><h3>Минусы</h3>
33
</ul><h3>Минусы</h3>
34
<ul><li>Перегрузка сервера. Популярные порталы могут получать большое количество запросов одновременно. Например, при десятке миллионов запросов в секунду сервер может не выдержать и отключиться. Этим пользуются хакеры при использовании DDoS-атаки. Подробнее виды атак рассмотрим в следующих уроках</li>
34
<ul><li>Перегрузка сервера. Популярные порталы могут получать большое количество запросов одновременно. Например, при десятке миллионов запросов в секунду сервер может не выдержать и отключиться. Этим пользуются хакеры при использовании DDoS-атаки. Подробнее виды атак рассмотрим в следующих уроках</li>
35
<li>Выход из строя сервера или базы данных. Это сделает сервис недоступным для всех пользователей</li>
35
<li>Выход из строя сервера или базы данных. Это сделает сервис недоступным для всех пользователей</li>
36
<li>Высокая стоимость оборудования. Сервер похож на простой компьютер, но его комплектующие должны быть рассчитаны на бесперебойную работу 24/7. Такая надежность обеспечивается компонентами со специальными функциями, из-за чего стоимость оборудования повышается</li>
36
<li>Высокая стоимость оборудования. Сервер похож на простой компьютер, но его комплектующие должны быть рассчитаны на бесперебойную работу 24/7. Такая надежность обеспечивается компонентами со специальными функциями, из-за чего стоимость оборудования повышается</li>
37
<li>Затраты на поддержку. Обычно недостаточно просто получить сервер и забыть про его существование. Должен быть специалист, который будет обслуживать сервер и быстро реагировать в случае поломок</li>
37
<li>Затраты на поддержку. Обычно недостаточно просто получить сервер и забыть про его существование. Должен быть специалист, который будет обслуживать сервер и быстро реагировать в случае поломок</li>
38
</ul><p>Чтобы избавиться от большинства перечисленных минусов, разработчики используют кластеры серверов.</p>
38
</ul><p>Чтобы избавиться от большинства перечисленных минусов, разработчики используют кластеры серверов.</p>
39
<h2>Кластеры серверов и балансировщики</h2>
39
<h2>Кластеры серверов и балансировщики</h2>
40
<p>Чтобы избежать проблем с клиент-серверной архитектурой, разработчики применяют<strong>кластеры серверов</strong>- когда приложение находится не на одном, а сразу на нескольких серверах. Информация на таких серверах дублируется:</p>
40
<p>Чтобы избежать проблем с клиент-серверной архитектурой, разработчики применяют<strong>кластеры серверов</strong>- когда приложение находится не на одном, а сразу на нескольких серверах. Информация на таких серверах дублируется:</p>
41
<p>Если один сервер вышел из строя, то его подменяет другой. Это дает время, чтобы устранить неисправности сервера так, что пользователи и не заметят.</p>
41
<p>Если один сервер вышел из строя, то его подменяет другой. Это дает время, чтобы устранить неисправности сервера так, что пользователи и не заметят.</p>
42
<p>Еще кластеры используются, чтобы распределять нагрузку. Мы уже говорили, что сервер может отключиться от десятка миллионов одновременных запросов. Кластеры можно настроить так, чтобы при десяти миллионах запросов они ушли не на один сервер, а на разные.</p>
42
<p>Еще кластеры используются, чтобы распределять нагрузку. Мы уже говорили, что сервер может отключиться от десятка миллионов одновременных запросов. Кластеры можно настроить так, чтобы при десяти миллионах запросов они ушли не на один сервер, а на разные.</p>
43
<p>Чтобы определить, на какой сервер послать запрос, используется<strong>балансировщик</strong>- сервис, который пропускает все запросы через себя и следит, чтобы серверы не перегружались:</p>
43
<p>Чтобы определить, на какой сервер послать запрос, используется<strong>балансировщик</strong>- сервис, который пропускает все запросы через себя и следит, чтобы серверы не перегружались:</p>
44
<p>Балансировщики и кластеры могут использоваться не только для серверов с приложением, но и для баз данных. Так можно получить независимые кластеры всего приложения, которые смогут подменять друг друга и помогать в обработке запросов от пользователей.</p>
44
<p>Балансировщики и кластеры могут использоваться не только для серверов с приложением, но и для баз данных. Так можно получить независимые кластеры всего приложения, которые смогут подменять друг друга и помогать в обработке запросов от пользователей.</p>
45
<p>Такие решения повышают надежность приложения, но сильно возрастает стоимость оборудования и поддержки. Поэтому небольшие компании и частные сайты не используют их. В этом случае ответственность за работоспособность берут хостинги - компании, которые предоставляют услугу аренды серверов для приложений. Подробнее о них поговорим в следующих уроках.</p>
45
<p>Такие решения повышают надежность приложения, но сильно возрастает стоимость оборудования и поддержки. Поэтому небольшие компании и частные сайты не используют их. В этом случае ответственность за работоспособность берут хостинги - компании, которые предоставляют услугу аренды серверов для приложений. Подробнее о них поговорим в следующих уроках.</p>
46
<h2>Выводы</h2>
46
<h2>Выводы</h2>
47
<p>В этом уроке мы узнали о клиент-серверной архитектуре, а также кто такой сервер и клиент и где лежат все сайты в интернете. Еще мы разобрались, почему приложения дублируются на нескольких серверах сразу и кто такой балансировщик. Повторим важные моменты урока:</p>
47
<p>В этом уроке мы узнали о клиент-серверной архитектуре, а также кто такой сервер и клиент и где лежат все сайты в интернете. Еще мы разобрались, почему приложения дублируются на нескольких серверах сразу и кто такой балансировщик. Повторим важные моменты урока:</p>
48
<ul><li>Сайты и приложения в интернете работают по клиент-серверной архитектуре</li>
48
<ul><li>Сайты и приложения в интернете работают по клиент-серверной архитектуре</li>
49
<li>Клиент - приложение, которое обеспечивает связь с сервером и доступно пользователям без технических знаний</li>
49
<li>Клиент - приложение, которое обеспечивает связь с сервером и доступно пользователям без технических знаний</li>
50
<li>Сервер - компьютер, на котором хранится сайт или приложение. Серверы общаются с клиентами и базами данных</li>
50
<li>Сервер - компьютер, на котором хранится сайт или приложение. Серверы общаются с клиентами и базами данных</li>
51
<li>Для обеспечения надежности используются кластеры серверов и баз данных</li>
51
<li>Для обеспечения надежности используются кластеры серверов и баз данных</li>
52
<li>В кластерах для управления потоком запросов используются балансировщики - сервисы, распределяющие нагрузку</li>
52
<li>В кластерах для управления потоком запросов используются балансировщики - сервисы, распределяющие нагрузку</li>
53
</ul>
53
</ul>