@leelook

Работа клиент-серверной модели,вопросы от нуба?

Добрый день, не могли бы вы разъяснить несколько вопросов начинающему ?:)
К примеру: у нас есть клиент-серверная модель Клиент - Веб сервер - Сервер приложения- БД.
В клиенте(браузере) я ввожу URL (toster.ru) далее идет обращение к DNS серверу и он возвращает ip который соответствует toster.ru
Вопросы:
1)При следующем обращении (переходу на другую страницу сайта) идет ли обращение снова к DNS или взаимодействие уже идет на прямую с Веб сервером/Сервером приложения?
2)В чем разница между веб сервером и сервером приложения? К примеру Apache -веб сервер,но как я понимаю он может быть и сервером приложения?
3)Какое звено из клиент-серверной модели (Клиент - Веб сервер - Сервер приложения- БД) может отсутствовать в этой цепочке?
Как я понимаю если это просто некая страничка с моей фото и страничкой"о себе" то может может отсутствовать Сервер приложения- БД, но если это "интернет магазин с форумом" то все компоненты необходимы?
4)И еще один глупый вопрос: что происходит,к примеру если я кладу товар в корзину в интернет магазине?
Как это вижу я: клиент отсылает запрос веб серверу,он его обрабатывает и отсылает серверу приложения, сервер приложения обрабатывает запрос и посылает запрос на изменение базы данных и далее в обратном порядке.Верно ли это? Или первое обращение идет к DNS серверу от клиента?

Спасибо всем и сори за нубские вопросы!
  • Вопрос задан
  • 292 просмотра
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
1)При следующем обращении (переходу на другую страницу сайта) идет ли обращение снова к DNS или взаимодействие уже идет на прямую с Веб сервером/Сервером приложения?

Вы путаете сервер-клиент приложение и работу DNS службы. К серверу можно изначально обращаться по IP адресу, к серверу можно обращаться и вообще не по IP сетям. Что же касается работы DNS, то работает оно сложнее.
Ваш комп смотрит файл hosts, если там нет нужного сайта, оно смотрит на локальный кеш, в котором хранятся недавние обращения. Если нет и там, обращается к вашему DNS серверу. Тот смотрит в свой кеш, если в нем нет - обращается к вышестоящему DNS серверу, и так до рут-сервера. По пути, каждый DNS сервер может иметь свой кеш. В среднем закешированное значение хранится сутки, но каждый владелец домена может настроить свой TTL (time to live). Кроме того, существуют dns балансеры, когда на тот же DNS могут возвращаться разные IP.

2) Веб сервер соответственно работает как сервер для веб (http), сервер приложений соответственно работает для приложений (например он запускает java сервлет, к которому можно обращаться различными способами, включая http)

3) в цепочке "клиент - вебсервер - сервер приложения" может отсутствовать второй или третий пункт. То есть может быть клиент-вебсервер или клиент-серверприложения. Вообще правильно говорить клиент-сервер. А какой именно клиент и сервер, и как они общаются - это уже вторично.

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

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

Понятно, что все команды которые отдает клиент серверу и все ответы, которые дает сервер клиенту, должны быть понятны и серверу и клиенту. Именно поэтому оно и работает.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
1) напрямую, если тот же домен, для ускорения картинки могут быть на сабдоменах, разок запросит и их ИП, хоть ИП часто одни и те же

2) это условность трактовки, может, но лучше не париться. Строго говоря, отдавая только статику и проксируя остальные запросы - веб-сервер уже сервер приложений и есть

3) любые два их трех: Веб сервер - Сервер приложения- БД
опять же - это трактовка, БД - это не обязательно RDBMs, может быть и на файлах

4) за ДНС тут вообще забудь, а происходит AJAX

и вот полезный сайт на много вперед - ruhighload.com "мне бы в твои годы"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы