Сервер — это некоторая программка, аппарат либо программно-аппаратный комплекс, который реализует какие-то сервисы. В свою очередь сервис — это служба, выполняющая некоторые деяния, запрашиваемые клиентом. Давайте разглядим внимательнее, как работает сервер.
Поглядим, из чего состоит сам сервер и без каких наружных компонент он не может обходиться. Во-1-х, сервер теряет собственный смысл в отсутствие клиентов. Принцип работы сервера — реализовывать нужды клиентов. Клиент сформировывает требования к серверу и берет на себя некую долю его работы. Потому почаще молвят не просто о сервере, а о системе клиенты-сервер. Клиент составляет запросы к серверу, средством которых изъявляет свою волю. Почему последующим, вторым компонентом системы будет тот формальный язык, на котором эти запросы составляются. Этих языков величавое огромное количество и выбор того либо другого впрямую находится в зависимости от сервера. Запросы до сервера должны как-то доставляться. 3-ий элемент — канал связи клиента и сервера, по которому передаются данные. Это в большинстве случаев или локальная сеть, или Веб, или локальные связи одной машины. Пришедший запрос сервер должен как-то принять и распознать. Принимающее устройство — так именуемый наружный интерфейс, представляет собой несколько портов, которые сервер безпрерывно (либо не безпрерывно) слушает. Принятые запросы отправляются в программную часть сервера, где и обрабатываются в согласовании с тем, как сервер запрограммирован. И зависимо от принятого запроса, запускается тот либо другой сервис с теми либо другими исходными данными. Сервисы и будут последней составляющей системы. После окончания работы сервиса итог выполнения отсылается клиенту по тому же каналу связи. Либо, если сервис интерактивный, то и в процессе его работы будет насыщенный обмен данными по каналу «клиент-сервер».
На данный момент основное предназначение клиент-серверных систем — переместить нагрузку с машин-клиентов на машину сервер. Вот поэтому вычислительная мощность обыденного сервера на пару порядков выше, чем оная у обыденного домашнего компьютера. Но время от времени такая организация работы системы отдаёт всю нагрузку на клиенты, а сервер служит для организации их работы и взаимодействия. Либо строго напротив, сервер делает все вычисления, а клиенты служат только для выдачи инфы юзеру. Как видно, методов использовать клиент-серверную модель масса.
Плюсы явны — сам принцип работы сервера обеспечивает удобство работы с системой, простоту управления ею, правильное рассредотачивание нагрузки на машины. А минусом является язык запросов и связанные с ним составляющие. Если юзер случаем либо специально отсылает на сервер ошибочно сформулированный запрос, то если такая ошибка не была предусмотрена программером, система даст сбой. Сведущие люди составляют заранее неправильные запросы так, чтоб система, призванная выдавать клиенту прогноз погоды, вывела злодею, к примеру, данные кредитных карт всех юзеров (если, естественно, за данные карт и за прогноз погоды отвечает один и тот же сервер). И счастливый злодей поначалу идёт и перечисляет для себя все средства всех юзеров сервиса, а потом длительно и задумчиво удирает от управления «К», расследующего это грех.
Клиент-серверная модель организации работы системы — очень комфортная в программировании, управлении и работе вещь. Но чтоб таковой системой можно было воспользоваться, любая компонента работающей схемы должна быть защищена как от злоумышленников, так и от юзеров, не знающих, как работает сервер, но жмущих все кнопки, до которых сумеют достать в случайной последовательности. Чтоб в системе можно было хранить, передавать и обрабатывать принципиальные данные, к примеру, сведения о платёжных картах, система информационной безопасности сервера должна удовлетворять определённым законом требованиям.