Описание тега client-server

НЕ ИСПОЛЬЗУЙТЕ ТОЛЬКО. Модель клиент-сервер - это централизованная модель, в которой сервер по запросу выполняет специализированную службу (например, HTTP, SMTP и т. Д.) Для нескольких клиентов. Используйте для проблем, связанных со связью клиент-сервер. Используйте с соответствующим языковым тегом (например: [python]).

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

Обычно взаимодействие клиент-сервер работает следующим образом:

  1. Клиент подключается к серверу и отправляет запрос. Запрос форматируется по любому из нескольких протоколов, в зависимости от типа сервера.
  2. Сервер получает запрос и начинает его обработку. Пока это происходит, клиента заставляют ждать.
  3. Сервер отправляет клиенту ответ, который обычно содержит как статус (была ли ошибка), так и контент (то есть то, что изначально запрашивал клиент).
  4. Клиент или сервер могут либо разорвать соединение, либо сохранить его для дальнейших запросов.

Запись в домене клиент-сервер представляет собой ряд проблем:

  • Многие, многие клиенты могут запрашивать услуги в любой момент времени. Эта проблема обычно встречается на веб-сайтах и ​​обычно решается с помощью нескольких уровней балансировки нагрузки и кэширования. Архитектура Википедии является примером этого (хотя и необычно сложным).
  • Сети могут легко стать ненадежными, а сеансы можно прервать в любой момент.
  • Безопасность может быть проблемой из-за компромиссов безопасности, таких как атака Man In The Middle. Алгоритмы криптографии (например, SSL) широко используются в различных сетевых областях для борьбы с этим.