В вычислительной технике сервер — это часть компьютерного оборудования или программного обеспечения ( компьютерная программа ), которая обеспечивает функциональность для других программ или устройств, называемых « клиентами ». Эта архитектура называется моделью клиент-сервер . Серверы могут предоставлять различные функции, часто называемые «сервисами», такие как обмен данными или ресурсами между несколькими клиентами или выполнение вычислений для клиента. Один сервер может обслуживать несколько клиентов, а один клиент может использовать несколько серверов. Клиентский процесс может работать на том же устройстве или может подключаться по сети к серверу на другом устройстве. [1]Типичными серверами являются серверы баз данных , файловые серверы , почтовые серверы , серверы печати , веб-серверы , игровые серверы и серверы приложений . [2]
Системы клиент-сервер обычно чаще всего реализуются (и часто отождествляются) с моделью запрос-ответ : клиент отправляет запрос на сервер, который выполняет какое-то действие и отправляет ответ обратно клиенту, обычно с результатом или подтверждением. . Обозначение компьютера как «оборудование серверного класса» подразумевает, что он специализирован для запуска на нем серверов. Это часто означает, что он более мощный и надежный, чем стандартные персональные компьютеры , но, в качестве альтернативы, большие вычислительные кластеры могут состоять из множества относительно простых заменяемых серверных компонентов.
Использование слова « сервер » в вычислительной технике происходит из теории очередей , [3] где оно восходит к середине 20-го века, в частности, используется в Кендалле (1953) (наряду с «сервисом»), статье, которая представила нотацию Кендалла . В более ранних работах, таких как Erlang (1909) , используются более конкретные термины, такие как «[телефонные] операторы».
В вычислительной технике «сервер» датируется, по крайней мере, RFC 5 (1969), [4] одним из самых ранних документов, описывающих ARPANET (предшественник Интернета ), и противопоставляется «пользователю», различая два типа хоста : « сервер-сервер». хост" и "пользователь-хост". Использование «обслуживания» также восходит к ранним документам, таким как RFC 4, [5] , в котором «обслуживающий хост» противопоставляется «использующему хосту».
Файл жаргона определяет « сервер » в обычном смысле процесса, выполняющего обслуживание запросов, обычно удаленных, с версией 1981 ( 1.1.0 ), которая гласит:
СЕРВЕР номер. Разновидность DAEMON , который оказывает услугу запрашивающему, который часто работает на компьютере, отличном от того, на котором работает сервер.