Если речь идет о сервере, невольно всплывает в памяти понятие клиента. Все потому, что эти два понятия неразрывно связаны. Объединяет их компьютерная архитектура клиент-сервер. Обычно, когда говорят «сервер», имеют в виду сервер в архитектуре клиент-сервер, а когда говорят «клиент» - имеют в виду клиент в этой же архитектуре. Так что же это за архитектура? Суть ее в том, чтобы разделить функции между двумя подсистемами: клиентом, который отправляет запрос на выполнение каких-либо действий, и сервером, который выполняет этот запрос. Взаимодействие между клиентом и сервером происходит посредством стандартных специальных протоколов, таких как TCP/IP и z39.50. На самом деле протоколов очень много, они различаются по уровням. Мы рассмотрим только протокол прикладного уровня HTTP (чуть позднее), поскольку для решения наших программистских задач нужен только он. А пока вернемся к клиент-серверной архитектуре и разберемся, что же такое клиент и что такое сервер.
Сервер представляет собой набор программ, которые контролируют выполнение различных процессов. Соответственно, этот набор программ установлен на каком-то компьютере. Часто компьютер, на котором установлен сервер, и называют сервером. Основная функция компьютера-сервера - по запросу клиента запустить какой-либо определенный процесс и отправить клиенту результаты его работы.
Клиентом называют любой процесс, который пользуется услугами сервера. Клиентом может быть как пользователь, так и программа. Основная задача клиента - выполнение приложения и осуществление связи с сервером, когда этого требует приложение. То есть клиент должен предоставлять пользователю интерфейс для работы с приложением, реализовывать логику его работы и при необходимости отправлять задания серверу.
Взаимодействие между клиентом и сервером начинается по инициативе клиента. Клиент запрашивает вид обслуживания, устанавливает сеанс, получает нужные ему результаты и сообщает об окончании работы.
Услугами одного сервера чаще всего пользуется несколько клиентов одновременно. Поэтому каждый сервер должен иметь достаточно большую производительность и обеспечивать безопасность данных.
Логичнее всего устанавливать сервер на компьютере, входящем в какую-либо сеть, локальную или глобальную. Однако можно устанавливать сервер и на отдельно стоящий компьютер (тогда он будет являться одновременно и клиентом и сервером).
Существует множество типов серверов. Вот лишь некоторые из них.
Видеосервер
Такой сервер специально приспособлен к обработке изображений, хранению видеоматериалов, видеоигр и т.п. В связи с этим компьютер, на котором установлен видеосервер, должен иметь высокую производительность и большую память.
Поисковый сервер предназначен для поиска информации в Internet.
Почтовый сервер предоставляет услуги в ответ на запросы, присланные по электронной почте.
Web-Сервер предназначен для работы в Internet.
Сервер баз данных выполняет обработку запросов к базам данных.
Сервер защиты данных предназначен для обеспечения безопасности данных (содержит, например, средства для идентификации паролей).
Сервер приложений предназначен для выполнения прикладных процессов. С одной стороны взаимодействует с клиентами, получая задания, а с другой - работает с базами данных, подбирая необходимые для обработки данные.
Сервер удаленного доступа обеспечивает коллективный удаленный доступ к данным.
Файловый сервер обеспечивает функционирование распределенных ресурсов, предоставляет услуги поиска, хранения, архивирования данных и возможность одновременного доступа к ним нескольких пользователей.
Сервер печати - ближе к дому. Устанавливать для каждого компьютера свой принтер накладно.
Вычислительный сервер - и близко и далеко. Это компьютер, выполняющий ту или иную программу. На таком сервере может быть установлена дорогущая программа, которую пользователь не может себе позволить, или ему необходимы мощности для эффективного выполнения программы.
Обычно на компьютере-сервере работает сразу несколько программ-серверов. Одна занимается электронной почтой, другая распределением файлов, третья предоставляет web-страницы.
Из всех типов серверов нас в основном интересует web-сервер. Часто его называют web-сервером, http-сервером или даже просто сервером. Что представляет собой web-сервер?
Во-первых, это хранилище информационных ресурсов.
Во-вторых, эти ресурсы хранятся и предоставляются пользователям в соответствии со стандартами Internet (такими, как протокол передачи данных HTTP). Как предоставляются данные в соответствии с этим протоколом, мы рассмотрим чуть позже. Работа с документами web-сервера осуществляется при помощи браузера (например, IE, Opera или Mozilla), который отсылает серверу запросы, созданные в соответствии с протоколом HTTP. В процессе выполнения задания сервер может связываться с другими серверами.
В качестве примеров web-серверов можно привести сервер Apache группы Apache, Internet Information Server (IIS) компании Microsoft, SunOne фирмы Sun Microsystems,WebLogic фирмы BEA Systems, IAS (Inprise Application Server) фирмы Borland, WebSphere фирмы IBM, OAS (Oracle Application Server).
Клиент - это компьютер, заимствующий ресурсы или службы у другого компьютера.
Клиенты бывают толстые и тонкие. Тонкий клиент представляет собой самую маленькую, простую и наименее дорогую комбинацию аппаратных и программных средств, сконфигурированную для выполнения только необходимых и больше никаких задач. Пользователи тонких клиентов выполняют свои приложения на серверах по сети.
Сейчас есть новые виды тонких клиентов: сотовые телефоны, цифровые пейджеры, электронные секретари.
Браузер - это клиентская программа, получающая услуги от сервера. Он позволяет оперировать файлами и информацией в сети, в том числе и Интернете. Есть графические (Mozilla FireFox), и текстовые (Lynx).
Современные сотовые телефоны содержат микробраузер, позволяющий отображать информацию на своем дисплее.