Сервер (программное обеспечение) | это… Что такое Сервер (программное обеспечение)?
У этого термина существуют и другие значения, см. Сервер.
Логотип Web-сервера Apache
Се́рверное программное обеспечение (англ. server от англ. to serve — служить) (множественное число серверá) — в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам.
Содержание
|
Роль сервера
Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер».
Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет, и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, COM-порт) или сетевые соединения.
Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например протоколы Интернета определяются в документах RFC.
В зависимости от выполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей.
Аппаратное обеспечение
Основная статья: Сервер (аппаратное обеспечение)
У слова «сервер», также есть второе значение — (персональный или иной) компьютер, выполняющий только серверные задачи, или компьютер (или иное аппаратное обеспечение), специализированный (по форм-фактору и/или ресурсам) для использования в качестве аппаратной базы для серверов услуг (иногда — услуг определенного направления).
Аппаратными серверами (аппаратное обеспечение) называются узкоспециализированные решения со встроенным программным обеспечением (англ. firmware; в отличие от компьютеров, где программное обеспечение необходимо устанавливать), определяющим специализацию и возможные предоставляемые услуги. Аппаратные серверы, как правило, более просты и надежны в эксплуатации, потребляют меньше электроэнергии и, иногда, более дешевы. Но вместе с тем они менее гибки (так как изначально ограничены в выполняемых задачах) и, часто, ограничены в ресурсах.
Важно понимать что сервер, в том значении как его понимает эта статья (то есть сервер, предоставляющий какой-либо сервис, например прокси-сервер), всегда является программой (или программным модулем), выполняющейся на каком-то аппаратном обеспечении. Без этой программы аппаратное обеспечение не может ничего предоставлять. Даже «аппаратные серверы» (или роутеры) не исключение, потому что в них сервис, также, предоставляется (встроенным) программным обеспечением. Иногда, для простоты, сервером услуги (например тем же прокси-сервером) называют программное и аппаратное обеспечение в целом, в особенности если этот программно-аппаратный комплекс выполняет только одну задачу.
Теоретически, на одной единице аппаратного обеспечения, может одновременно выполняться произвольное количество серверов (за исключением серверов конфликтующих между собой по ресурсам или их количеству), они будут делить между собой аппаратные ресурсы. Практически, между крайностями «один компьютер — одна услуга» и «один компьютер — все услуги» каждый находит свой компромисс.
Серверы услуг можно запускать на рабочей станции, чтобы они работали в фоне разделяя ресурсы компьютера с программами, запускаемыми пользователем. Такой режим работы называется «невыделенным», в отличие от «выделенного» (англ. dedicated), когда компьютер выполняет только сервисные функции. Строго говоря, на рабочей станции (для примера, под управлением Windows XP) и без того, всегда работает несколько серверов — сервер удаленного доступа (терминальный сервер), сервер удаленного доступа к файловой системе и системе печати, и прочие удаленные и внутренние серверы.
Классификация стандартных серверов
Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг которые они предоставляют.
Универсальные серверы
Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:
- inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).
- RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используетстся как в большинстве Unix-систем, так и в Windows.
- Прикладные клиент-серверные технологии Windows:
- (D-)COM (англ. (Distributed) Component Object Model — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.
- Active-X — Расширение COM и DCOM для создания мультимедиа-приложений.
Универсальные серверы часто используются для написания всевозможных информационных серверов, серверов, которым не нужна какая-то специфическая работа с сетью, серверов не имеющих никаких задач, кроме обслуживания клиентов. Например в роли серверов для inetd могут выступать обычные консольные программы и скрипты.
Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).
Маршрутизация
Строго говоря, сервис маршрутизации не является сервером в классическом смысле, а является базовой функцией поддержки сети операционной системой.
Для TCP/IP, маршрутизация является базовой функцией стека IP (кода поддержки TCP/IP). Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети, маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета:
- принять пакет
- найти машину на которую следует этот пакет или следующий маршрутизатор по маршруту к ней (в таблице маршрутов)
- передать пакет или вернуть ICMP-сообщение о невозможности его доставки по причинам:
- Назначение недостижимо (Destination unreachable) — у пакета кончилось «время жизни» прежде чем он достиг места назначения
- Хост недостижим (Host unreachable) — компьютер или следующий маршрутизатор выключен или не существует
- Сеть недостижима (Network unreachable) — маршрутизатор не имеет маршрута в сеть назначения
- если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) — отбросить пакет без уведомлений
Динамическая маршрутизация
Решения динамической маршрутизации призваны собирать информацию о текущем состоянии сложной сети и поддерживать таблицу маршрутов через эту сеть, чтобы обеспечить доставку пакета по кратчайшему и самому эффективному маршруту.
Из этих решений клиент-серверную модель использует только BGP (англ. Border Gateway Protocol — протокол пограничного шлюза), применяемый для глобальной маршрутизации. Локальные решения (RIP, OSPF) используют в своей работе бродкастовые и мультикастовые рассылки.
Сетевые службы
Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS — трансляцию имен в адреса и наоборот.
Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.
Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.
Информационные службы
К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.
Особым видом информационных служб являются серверы синхронизации времени — NTP, кроме информировании клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени. Кроме коррекции времени анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем возможных при простой перестановке времени.
Файл-серверы
Основная статья: Файловый сервер
Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.
Прежде всего это серверы передачи файлов по заказу, по протоколам FTP, TFTP, SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов, но серверы могут отдавать в качестве запрошенных файлов и произвольные данные, например динамически созданные веб-страницы, картинки, музыку и т. п.
Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.
Недостатки файл-серверной системы:
- Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
- Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придется потратить на оснащение их компьютеров.
- Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
- Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле
Сервера доступа к данным
Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).
Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ.
Службы обмена сообщениями
Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые).
В первую очередь это серверы электронной почты работающие по протоколу SMTP. SMTP-сервер принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный). На многопользовательских компьютерах, пользователи работают с почтой прямо на терминале (или веб-интерфейсе). Для работы с почтой на персональном компьютере, почта забирается из почтового ящика через серверы, работающие по протоколам POP3 или IMAP.
Для организации конференций существует серверы новостей, работающие по протоколу NNTP.
Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC — распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.
Сервера удалённого доступа
Серверы удалённого доступа, через соответствующую клиентскую программу, обеспечивают пользователя консольным доступом к удалённой системе.
Для обеспечения доступа к командной строке служат серверы telnet, RSH, SSH.
Графический интерфейс для Unix-систем — X Window System, имеет встроенный сервер удалённого доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удалённого доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).
Стандартный сервер удалённого доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.
Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.
Игровые сервера
Игровые серверы служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме (то есть позволяют играть на машине, на которой запущен сервер).
Серверные решения
Серверные решения — операционные системы и/или пакеты программ оптимизированные под выполнение компьютером функций сервера и/или содержащие в своем составе комплект программ для реализации типичного набора сервисов.
Примером серверных решений можно привести Unix-системы, изначально предназначенные для реализации серверной инфраструктуры.
Также необходимо выделить пакеты серверов и сопутствующих программ (например комплект веб-сервер/PHP/MySQL для быстрой развертки хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки, но они существуют.
Наиболее известное — LAMP).В интегрированных серверных решениях установка всех компонентов выполняется единовременно, все компоненты в той или иной мере тесно интегрированы и предварительно настроены друг на друга. Однако в этом случае, замена одного из серверов или вторичных приложений (если их возможности не удовлетворяют потребностям) может представлять проблему.
Серверные решения служат для упрощения организации базовой ИТ-инфраструктуры компаний, то есть для оперативного построения полноценной сети в компании в том числе и «с нуля». Компоновка отдельных серверных приложений в решение подразумевает, что решение предназначено для выполнения большинства типовых задач; при этом значительно снижается сложность развертывания и общая стоимость владения ИТ-инфраструктурой, построенной на таких решениях.
Сервер (программное обеспечение) | это… Что такое Сервер (программное обеспечение)?
У этого термина существуют и другие значения, см. Сервер.
Логотип Web-сервера Apache
Се́рверное программное обеспечение (англ. server от англ. to serve — служить) (множественное число серверá) — в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам.
Содержание
|
Роль сервера
Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер».
Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет, и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, COM-порт) или сетевые соединения.
Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например протоколы Интернета определяются в документах RFC.
В зависимости от выполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей.
Аппаратное обеспечение
Основная статья: Сервер (аппаратное обеспечение)
У слова «сервер», также есть второе значение — (персональный или иной) компьютер, выполняющий только серверные задачи, или компьютер (или иное аппаратное обеспечение), специализированный (по форм-фактору и/или ресурсам) для использования в качестве аппаратной базы для серверов услуг (иногда — услуг определенного направления).
Аппаратными серверами (аппаратное обеспечение) называются узкоспециализированные решения со встроенным программным обеспечением (англ. firmware; в отличие от компьютеров, где программное обеспечение необходимо устанавливать), определяющим специализацию и возможные предоставляемые услуги. Аппаратные серверы, как правило, более просты и надежны в эксплуатации, потребляют меньше электроэнергии и, иногда, более дешевы. Но вместе с тем они менее гибки (так как изначально ограничены в выполняемых задачах) и, часто, ограничены в ресурсах.
Важно понимать что сервер, в том значении как его понимает эта статья (то есть сервер, предоставляющий какой-либо сервис, например прокси-сервер), всегда является программой (или программным модулем), выполняющейся на каком-то аппаратном обеспечении. Без этой программы аппаратное обеспечение не может ничего предоставлять. Даже «аппаратные серверы» (или роутеры) не исключение, потому что в них сервис, также, предоставляется (встроенным) программным обеспечением. Иногда, для простоты, сервером услуги (например тем же прокси-сервером) называют программное и аппаратное обеспечение в целом, в особенности если этот программно-аппаратный комплекс выполняет только одну задачу.
Теоретически, на одной единице аппаратного обеспечения, может одновременно выполняться произвольное количество серверов (за исключением серверов конфликтующих между собой по ресурсам или их количеству), они будут делить между собой аппаратные ресурсы. Практически, между крайностями «один компьютер — одна услуга» и «один компьютер — все услуги» каждый находит свой компромисс.
Серверы услуг можно запускать на рабочей станции, чтобы они работали в фоне разделяя ресурсы компьютера с программами, запускаемыми пользователем. Такой режим работы называется «невыделенным», в отличие от «выделенного» (англ. dedicated), когда компьютер выполняет только сервисные функции. Строго говоря, на рабочей станции (для примера, под управлением Windows XP) и без того, всегда работает несколько серверов — сервер удаленного доступа (терминальный сервер), сервер удаленного доступа к файловой системе и системе печати, и прочие удаленные и внутренние серверы.
Классификация стандартных серверов
Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг которые они предоставляют.
Универсальные серверы
Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:
- inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).
- RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используетстся как в большинстве Unix-систем, так и в Windows.
- Прикладные клиент-серверные технологии Windows:
- (D-)COM (англ. (Distributed) Component Object Model — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.
- Active-X — Расширение COM и DCOM для создания мультимедиа-приложений.
Универсальные серверы часто используются для написания всевозможных информационных серверов, серверов, которым не нужна какая-то специфическая работа с сетью, серверов не имеющих никаких задач, кроме обслуживания клиентов. Например в роли серверов для inetd могут выступать обычные консольные программы и скрипты.
Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).
Маршрутизация
Строго говоря, сервис маршрутизации не является сервером в классическом смысле, а является базовой функцией поддержки сети операционной системой.
Для TCP/IP, маршрутизация является базовой функцией стека IP (кода поддержки TCP/IP). Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети, маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета:
- принять пакет
- найти машину на которую следует этот пакет или следующий маршрутизатор по маршруту к ней (в таблице маршрутов)
- передать пакет или вернуть ICMP-сообщение о невозможности его доставки по причинам:
- Назначение недостижимо (Destination unreachable) — у пакета кончилось «время жизни» прежде чем он достиг места назначения
- Хост недостижим (Host unreachable) — компьютер или следующий маршрутизатор выключен или не существует
- Сеть недостижима (Network unreachable) — маршрутизатор не имеет маршрута в сеть назначения
- если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) — отбросить пакет без уведомлений
Динамическая маршрутизация
Решения динамической маршрутизации призваны собирать информацию о текущем состоянии сложной сети и поддерживать таблицу маршрутов через эту сеть, чтобы обеспечить доставку пакета по кратчайшему и самому эффективному маршруту.
Из этих решений клиент-серверную модель использует только BGP (англ. Border Gateway Protocol — протокол пограничного шлюза), применяемый для глобальной маршрутизации. Локальные решения (RIP, OSPF) используют в своей работе бродкастовые и мультикастовые рассылки.
Сетевые службы
Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS — трансляцию имен в адреса и наоборот.
Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.
Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.
Информационные службы
К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.
Особым видом информационных служб являются серверы синхронизации времени — NTP, кроме информировании клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени. Кроме коррекции времени анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем возможных при простой перестановке времени.
Файл-серверы
Основная статья: Файловый сервер
Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.
Прежде всего это серверы передачи файлов по заказу, по протоколам FTP, TFTP, SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов, но серверы могут отдавать в качестве запрошенных файлов и произвольные данные, например динамически созданные веб-страницы, картинки, музыку и т. п.
Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.
Недостатки файл-серверной системы:
- Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
- Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придется потратить на оснащение их компьютеров.
- Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
- Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле
Сервера доступа к данным
Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).
Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).
Службы обмена сообщениями
Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые).
В первую очередь это серверы электронной почты работающие по протоколу SMTP. SMTP-сервер принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный). На многопользовательских компьютерах, пользователи работают с почтой прямо на терминале (или веб-интерфейсе). Для работы с почтой на персональном компьютере, почта забирается из почтового ящика через серверы, работающие по протоколам POP3 или IMAP.
Для организации конференций существует серверы новостей, работающие по протоколу NNTP.
Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC — распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.
Сервера удалённого доступа
Серверы удалённого доступа, через соответствующую клиентскую программу, обеспечивают пользователя консольным доступом к удалённой системе.
Для обеспечения доступа к командной строке служат серверы telnet, RSH, SSH.
Графический интерфейс для Unix-систем — X Window System, имеет встроенный сервер удалённого доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удалённого доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).
Стандартный сервер удалённого доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.
Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.
Игровые сервера
Игровые серверы служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме (то есть позволяют играть на машине, на которой запущен сервер).
Серверные решения
Серверные решения — операционные системы и/или пакеты программ оптимизированные под выполнение компьютером функций сервера и/или содержащие в своем составе комплект программ для реализации типичного набора сервисов.
Примером серверных решений можно привести Unix-системы, изначально предназначенные для реализации серверной инфраструктуры.
Также необходимо выделить пакеты серверов и сопутствующих программ (например комплект веб-сервер/PHP/MySQL для быстрой развертки хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки, но они существуют. Наиболее известное — LAMP).
В интегрированных серверных решениях установка всех компонентов выполняется единовременно, все компоненты в той или иной мере тесно интегрированы и предварительно настроены друг на друга. Однако в этом случае, замена одного из серверов или вторичных приложений (если их возможности не удовлетворяют потребностям) может представлять проблему.
Серверные решения служат для упрощения организации базовой ИТ-инфраструктуры компаний, то есть для оперативного построения полноценной сети в компании в том числе и «с нуля». Компоновка отдельных серверных приложений в решение подразумевает, что решение предназначено для выполнения большинства типовых задач; при этом значительно снижается сложность развертывания и общая стоимость владения ИТ-инфраструктурой, построенной на таких решениях.
Сервер (программное обеспечение) | это… Что такое Сервер (программное обеспечение)?
У этого термина существуют и другие значения, см. Сервер.
Логотип Web-сервера Apache
Се́рверное программное обеспечение (англ. server от англ. to serve — служить) (множественное число серверá) — в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам.
Содержание
|
Роль сервера
Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер».
Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет, и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, COM-порт) или сетевые соединения.
Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например протоколы Интернета определяются в документах RFC.
В зависимости от выполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей.
Аппаратное обеспечение
Основная статья: Сервер (аппаратное обеспечение)
У слова «сервер», также есть второе значение — (персональный или иной) компьютер, выполняющий только серверные задачи, или компьютер (или иное аппаратное обеспечение), специализированный (по форм-фактору и/или ресурсам) для использования в качестве аппаратной базы для серверов услуг (иногда — услуг определенного направления).
Аппаратными серверами (аппаратное обеспечение) называются узкоспециализированные решения со встроенным программным обеспечением (англ. firmware; в отличие от компьютеров, где программное обеспечение необходимо устанавливать), определяющим специализацию и возможные предоставляемые услуги. Аппаратные серверы, как правило, более просты и надежны в эксплуатации, потребляют меньше электроэнергии и, иногда, более дешевы. Но вместе с тем они менее гибки (так как изначально ограничены в выполняемых задачах) и, часто, ограничены в ресурсах.
Важно понимать что сервер, в том значении как его понимает эта статья (то есть сервер, предоставляющий какой-либо сервис, например прокси-сервер), всегда является программой (или программным модулем), выполняющейся на каком-то аппаратном обеспечении. Без этой программы аппаратное обеспечение не может ничего предоставлять. Даже «аппаратные серверы» (или роутеры) не исключение, потому что в них сервис, также, предоставляется (встроенным) программным обеспечением. Иногда, для простоты, сервером услуги (например тем же прокси-сервером) называют программное и аппаратное обеспечение в целом, в особенности если этот программно-аппаратный комплекс выполняет только одну задачу.
Теоретически, на одной единице аппаратного обеспечения, может одновременно выполняться произвольное количество серверов (за исключением серверов конфликтующих между собой по ресурсам или их количеству), они будут делить между собой аппаратные ресурсы. Практически, между крайностями «один компьютер — одна услуга» и «один компьютер — все услуги» каждый находит свой компромисс.
Серверы услуг можно запускать на рабочей станции, чтобы они работали в фоне разделяя ресурсы компьютера с программами, запускаемыми пользователем. Такой режим работы называется «невыделенным», в отличие от «выделенного» (англ. dedicated), когда компьютер выполняет только сервисные функции. Строго говоря, на рабочей станции (для примера, под управлением Windows XP) и без того, всегда работает несколько серверов — сервер удаленного доступа (терминальный сервер), сервер удаленного доступа к файловой системе и системе печати, и прочие удаленные и внутренние серверы.
Классификация стандартных серверов
Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг которые они предоставляют.
Универсальные серверы
Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:
- inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).
- RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используетстся как в большинстве Unix-систем, так и в Windows.
- Прикладные клиент-серверные технологии Windows:
- (D-)COM (англ. (Distributed) Component Object Model — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.
- Active-X — Расширение COM и DCOM для создания мультимедиа-приложений.
Универсальные серверы часто используются для написания всевозможных информационных серверов, серверов, которым не нужна какая-то специфическая работа с сетью, серверов не имеющих никаких задач, кроме обслуживания клиентов. Например в роли серверов для inetd могут выступать обычные консольные программы и скрипты.
Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).
Маршрутизация
Строго говоря, сервис маршрутизации не является сервером в классическом смысле, а является базовой функцией поддержки сети операционной системой.
Для TCP/IP, маршрутизация является базовой функцией стека IP (кода поддержки TCP/IP). Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети, маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета:
- принять пакет
- найти машину на которую следует этот пакет или следующий маршрутизатор по маршруту к ней (в таблице маршрутов)
- передать пакет или вернуть ICMP-сообщение о невозможности его доставки по причинам:
- Назначение недостижимо (Destination unreachable) — у пакета кончилось «время жизни» прежде чем он достиг места назначения
- Хост недостижим (Host unreachable) — компьютер или следующий маршрутизатор выключен или не существует
- Сеть недостижима (Network unreachable) — маршрутизатор не имеет маршрута в сеть назначения
- если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) — отбросить пакет без уведомлений
Динамическая маршрутизация
Решения динамической маршрутизации призваны собирать информацию о текущем состоянии сложной сети и поддерживать таблицу маршрутов через эту сеть, чтобы обеспечить доставку пакета по кратчайшему и самому эффективному маршруту.
Из этих решений клиент-серверную модель использует только BGP (англ. Border Gateway Protocol — протокол пограничного шлюза), применяемый для глобальной маршрутизации. Локальные решения (RIP, OSPF) используют в своей работе бродкастовые и мультикастовые рассылки.
Сетевые службы
Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS — трансляцию имен в адреса и наоборот.
Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.
Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.
Информационные службы
К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.
Особым видом информационных служб являются серверы синхронизации времени — NTP, кроме информировании клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени. Кроме коррекции времени анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем возможных при простой перестановке времени.
Файл-серверы
Основная статья: Файловый сервер
Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.
Прежде всего это серверы передачи файлов по заказу, по протоколам FTP, TFTP, SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов, но серверы могут отдавать в качестве запрошенных файлов и произвольные данные, например динамически созданные веб-страницы, картинки, музыку и т. п.
Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.
Недостатки файл-серверной системы:
- Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
- Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придется потратить на оснащение их компьютеров.
- Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
- Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле
Сервера доступа к данным
Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).
Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).
Службы обмена сообщениями
Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые).
В первую очередь это серверы электронной почты работающие по протоколу SMTP. SMTP-сервер принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный). На многопользовательских компьютерах, пользователи работают с почтой прямо на терминале (или веб-интерфейсе). Для работы с почтой на персональном компьютере, почта забирается из почтового ящика через серверы, работающие по протоколам POP3 или IMAP.
Для организации конференций существует серверы новостей, работающие по протоколу NNTP.
Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC — распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.
Сервера удалённого доступа
Серверы удалённого доступа, через соответствующую клиентскую программу, обеспечивают пользователя консольным доступом к удалённой системе.
Для обеспечения доступа к командной строке служат серверы telnet, RSH, SSH.
Графический интерфейс для Unix-систем — X Window System, имеет встроенный сервер удалённого доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удалённого доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).
Стандартный сервер удалённого доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.
Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.
Игровые сервера
Игровые серверы служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме (то есть позволяют играть на машине, на которой запущен сервер).
Серверные решения
Серверные решения — операционные системы и/или пакеты программ оптимизированные под выполнение компьютером функций сервера и/или содержащие в своем составе комплект программ для реализации типичного набора сервисов.
Примером серверных решений можно привести Unix-системы, изначально предназначенные для реализации серверной инфраструктуры.
Также необходимо выделить пакеты серверов и сопутствующих программ (например комплект веб-сервер/PHP/MySQL для быстрой развертки хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки, но они существуют. Наиболее известное — LAMP).
В интегрированных серверных решениях установка всех компонентов выполняется единовременно, все компоненты в той или иной мере тесно интегрированы и предварительно настроены друг на друга. Однако в этом случае, замена одного из серверов или вторичных приложений (если их возможности не удовлетворяют потребностям) может представлять проблему.
Серверные решения служат для упрощения организации базовой ИТ-инфраструктуры компаний, то есть для оперативного построения полноценной сети в компании в том числе и «с нуля». Компоновка отдельных серверных приложений в решение подразумевает, что решение предназначено для выполнения большинства типовых задач; при этом значительно снижается сложность развертывания и общая стоимость владения ИТ-инфраструктурой, построенной на таких решениях.
Что такое программный сервер и нужен ли он вам?
Что такое сервер?Сервер — это компьютер, предоставляющий информацию другим компьютерам. Это можно сделать различными способами, включая, помимо прочего, размещение веб-сайтов и предоставление файлов для загрузки. Чтобы компьютер мог получить доступ к серверу, на нем должно быть установлено соответствующее программное обеспечение.
Сервер является важной частью вашей инфраструктуры информационных технологий. Серверы бывают разных форм и размеров, с различными возможностями и функциями. Важно понимать роль, которую серверы играют в вашем бизнесе, чтобы вы могли выбрать правильный тип и размер для своих нужд.
Проще говоря, сервер одновременно является и клиентом, и сервером. Он может отправлять и получать запросы от других клиентов, а также обслуживать файлы или приложения для других клиентов. В большинстве случаев выделенный сервер требуется для предприятий, которые хотят разместить свое веб-приложение.
Серверы можно использовать для различных целей, например для размещения веб-сайтов, запуска бизнес-приложений или хранения файлов. Чтобы пользователи могли получить доступ к этим службам, IP-адрес сервера должен быть известен.
Сервер — это компьютер, предоставляющий услуги другим компьютерам по сети. Серверы обычно подключаются к Интернету с помощью кабеля или беспроводной связи, но они также могут быть подключены. Когда пользователь запрашивает услуги сервера, сервер предоставляет их и берет плату за их использование.
Как работает сервер?Чтобы быть доступным для других компьютеров, он должен быть настроен на прослушивание запросов от клиентов по сетевому соединению.
В вычислительной технике модель клиент-сервер представляет собой распределенную архитектуру приложений, в которой задачи или рабочие нагрузки распределяются между клиентами и серверами. Часто используемый для сетевых вычислений, он также может использоваться в параллельной обработке. Модель запроса и ответа в сети клиент-сервер — это модель вызова и ответа. В этой модели сервер всегда доступен для приема запросов от клиентов. Когда запрос получен, сервер обрабатывает его и отправляет ответ обратно клиенту.
Сервер — это устройство, которое обрабатывает запросы клиентов на предоставление им определенных услуг или данных. Серверы могут быть физическими или виртуальными, они могут располагаться локально или за пределами предприятия. Для сервера устройство должно иметь возможность правильно форматировать и возвращать ожидаемые ответы.
Преимущества сервераСерверы могут предоставить пользователям множество преимуществ, включая повышенную безопасность, упрощенный обмен файлами и повышенную эффективность.
Серверы необходимы для бизнеса, поскольку они обеспечивают стабильную и надежную платформу для запуска критически важных бизнес-приложений. Серверы также построены из компонентов более высокого класса, чем обычные ПК, а это означает, что они более надежны и могут справляться с более высокими рабочими нагрузками.
Серверы более экономичны, чем традиционные ПК, и в долгосрочной перспективе они могут сэкономить вам деньги. Кроме того, серверы обеспечивают более простой способ управления и обмена информацией между несколькими устройствами.
Серверы могут упростить поддержку благодаря большому количеству пользователей, которых они поддерживают. Кроме того, серверы могут разгружать работу с отдельных компьютеров, что делает их более эффективными и быстрыми.
Это может быть полезно для предприятий, так как упрощает совместную работу сотрудников, предоставляя общий доступ к файлам и папкам. Серверы также позволяют хранить большие объемы данных, которые могут быть полезны для целей резервного копирования.
Что означает программный сервер?Программный сервер — это тип программного обеспечения, которое помогает управлять и контролировать аппаратное обеспечение сервера.
Программный сервер — это тип компьютерного программного обеспечения, обеспечивающего основные функции, необходимые для использования компьютерной системы.
Существуют различные типы программных серверов, каждый из которых выполняет определенную задачу.
Например, на веб-серверах размещаются веб-сайты и приложения, почтовые серверы управляют обменом электронной почтой, а серверы печати управляют задачами печати.
Программный сервер — это тип компьютерного программного обеспечения, обеспечивающего работу сервера. Это может быть как для физических, так и для виртуальных/облачных серверов.
Физические серверы — это те, которые имеют осязаемую форму, например настольный компьютер или мейнфрейм.
Виртуальные/облачные серверы, с другой стороны, не являются физическими объектами; скорее, они создаются с использованием программного обеспечения, позволяющего запускать несколько виртуальных серверов на одном физическом сервере.
Преимущества программного сервераПозволяет серверу взаимодействовать с другими устройствами и системами, а также получать доступ и хранить данные.
Серверное программное обеспечение обеспечивает централизованное управление сетевыми вычислительными ресурсами организации. Этот тип программного обеспечения может включать программы для управления файлами, базами данных, веб-серверами и т. д.
Преимущества программных серверов заключаются в том, что они более доступны по цене, их можно настраивать и модифицировать, у них больше ресурсов, ими легче управлять, так как вам не нужно какое-либо оборудование, и они проще в использовании.
Преимущества программного сервера можно разделить на несколько категорий:
— Более быстрая разработка и развертывание продукта
— Гибкая, масштабируемая инфраструктура
— Снижение затрат благодаря большей эффективности
Преимущества программных серверов заключаются в том, что они предоставить масштабируемое и эффективное решение для хранения, обработки и доступа к информации. Они также позволяют быстро восстанавливаться после сбоев.
Использование программного сервераВо многих случаях организациям необходимо установить серверное программное обеспечение для использования определенных функций или приложений.
Этот тип программного обеспечения может использоваться для различных целей, таких как размещение веб-сайтов, предоставление файлов и служб печати, а также запуск баз данных. Чтобы использовать серверное программное обеспечение, у вас должен быть сервер — компьютер, специально настроенный для этой цели.
По сути, серверное программное обеспечение отвечает за выполнение основных функций бизнеса. Предоставляя возможности хранения данных, управляя доступом пользователей и предоставляя онлайн-услуги, серверное программное обеспечение позволяет предприятиям поддерживать организованность и эффективность своих данных и операций. В зависимости от размера и потребностей компании может потребоваться различное серверное программное обеспечение.
Программный сервер — это компьютер, предназначенный для запуска приложения, к которому могут обращаться несколько пользователей. Чаще всего он используется как центральное место для хранения и поиска данных, но его также можно использовать в качестве персонального компьютера.
Программные серверы можно использовать по-разному. Многие веб-сайты используют ту или иную форму сервера для запуска своего веб-сайта, предоставления услуг или информации своим пользователям. Серверы баз данных используются многими компаниями для хранения информации. Программные серверы также часто используются в игровой среде, где сервер выступает в качестве хоста для игроков, которые хотят играть онлайн.
Кому нужен программный сервер?Серверное программное обеспечение обычно используется на предприятиях или в организациях, где необходимо управлять большими объемами данных.
В большинстве случаев серверное программное обеспечение используется не обычными пользователями, а системными администраторами, которым необходимо управлять компьютерными системами и обслуживать их.
Цифровая трансформация стала обычным явлением, чтобы оставаться на шаг впереди. Чтобы успешно внедрить эту стратегию, компаниям необходимо иметь надежное серверное программное обеспечение. Это позволяет им управлять и обрабатывать увеличивающийся объем создаваемых цифровых данных. Кроме того, серверное программное обеспечение может помочь улучшить сотрудничество между сотрудниками и лучше обслуживать клиентов.
Короче говоря, серверное программное обеспечение — это тип приложения, которое находится на сервере и позволяет ему предоставлять услуги другим приложениям или пользователям. Его можно использовать для различных целей, например для размещения веб-сайтов и веб-приложений, хранения данных или предоставления внутренних функций для мобильных приложений. По мере того, как предприятия проходят цифровую трансформацию, роль серверов и серверного программного обеспечения становится все более важной, поэтому важно иметь общее представление о том, что это такое и что оно может делать.
Серверы — это основа технологии для предприятий любого размера. На серверах размещаются важные бизнес-приложения и хранятся данные. Они позволяют сотрудникам получать доступ к необходимой им информации с любого устройства в любой точке мира. Кроме того, серверы могут обеспечивать расширенные функции безопасности и соответствия требованиям, которые имеют решающее значение для бизнеса в современную цифровую эпоху.
Введение в серверную часть — обучение веб-разработке
- Обзор: первые шаги
- Следующий
Добро пожаловать на курс серверного программирования MDN для начинающих! В этой первой статье мы рассмотрим программирование на стороне сервера с высокого уровня, отвечая на такие вопросы, как «что это такое?», «чем оно отличается от программирования на стороне клиента?» и «почему оно так полезно?» . Прочитав эту статью, вы поймете, какие дополнительные возможности веб-сайты получают благодаря кодированию на стороне сервера.
Необходимые условия: | Базовая компьютерная грамотность. Базовое понимание того, что такое веб-сервер. |
---|---|
Цель: | Познакомиться с тем, что такое программирование на стороне сервера, что оно может делать, и чем это отличается от программирования на стороне клиента. |
Большинство крупных веб-сайтов используют код на стороне сервера для динамического отображения различных данных, когда это необходимо, как правило, извлекаемых из базы данных, хранящейся на сервере, и отправляются клиенту для отображения с помощью некоторого кода (например, HTML и JavaScript). .
Возможно, наиболее значительным преимуществом серверного кода является то, что он позволяет адаптировать содержимое веб-сайта для отдельных пользователей. Динамические сайты могут выделять контент, который более актуален в зависимости от предпочтений и привычек пользователей. Это также может упростить использование сайтов за счет сохранения личных предпочтений и информации — например, повторное использование сохраненных данных кредитной карты для упрощения последующих платежей.
Он может даже разрешить взаимодействие с пользователями сайта, отправку уведомлений и обновлений по электронной почте или по другим каналам. Все эти возможности обеспечивают более глубокое взаимодействие с пользователями.
В современном мире веб-разработки настоятельно рекомендуется изучить разработку на стороне сервера.
Веб-браузеры взаимодействуют с веб-серверами, используя протокол H yper T ext T ransfer P (HTTP). Когда вы щелкаете ссылку на веб-странице, отправляете форму или выполняете поиск, HTTP-запрос отправлен из вашего браузера на целевой сервер.
Запрос включает URL-адрес, идентифицирующий затронутый ресурс, метод, определяющий требуемое действие (например, получение, удаление или размещение ресурса), и может включать дополнительную информацию, закодированную в параметрах URL (пары поле-значение, отправленные через строка запроса), в виде данных POST (данные, отправленные методом HTTP POST) или в связанных файлах cookie.
Веб-серверы ожидают сообщений с запросами клиентов, обрабатывают их, когда они приходят, и отвечают веб-браузеру кодом HTTP-ответ сообщение. Ответ содержит строку состояния, указывающую, успешно ли выполнен запрос (например, «HTTP/1.1 200 OK» для успеха).
Тело успешного ответа на запрос будет содержать запрошенный ресурс (например, новую HTML-страницу или изображение), который затем может быть отображен веб-браузером.
Статические сайты
На приведенной ниже диаграмме показана базовая архитектура веб-сервера для статического сайта (статический сайт — это сайт, который возвращает одно и то же жестко запрограммированное содержимое с сервера при каждом запросе определенного ресурса). Когда пользователь хочет перейти на страницу, браузер отправляет HTTP-запрос «GET» с указанием ее URL-адреса.
Сервер извлекает запрошенный документ из своей файловой системы и возвращает ответ HTTP, содержащий документ и статус успешного выполнения (обычно 200 OK). Если файл по какой-либо причине не может быть получен, возвращается статус ошибки (см. ответы клиента об ошибке и ответы сервера об ошибке).
Динамические сайты
Динамический веб-сайт — это сайт, на котором некоторая часть содержимого ответов генерируется динамически , только когда это необходимо. На динамическом веб-сайте HTML-страницы обычно создаются путем вставки данных из базы данных в заполнители в шаблонах HTML (это гораздо более эффективный способ хранения больших объемов контента, чем использование статических веб-сайтов).
Динамический сайт может возвращать разные данные для URL-адреса на основе информации, предоставленной пользователем, или сохраненных настроек, а также может выполнять другие операции в рамках возврата ответа (например, отправка уведомлений).
Большая часть кода для поддержки динамического веб-сайта должна выполняться на сервере. Создание этого кода известно как « программирование на стороне сервера » (или иногда « внутренние сценарии »).
На приведенной ниже диаграмме показана простая архитектура динамического веб-сайта . Как и на предыдущей диаграмме, браузеры отправляют HTTP-запросы на сервер, затем сервер обрабатывает запросы и возвращает соответствующие HTTP-ответы.
Запросы на статические ресурсы обрабатываются так же, как и для статических сайтов (статические ресурсы — это любые файлы, которые не изменяются — обычно: CSS, JavaScript, изображения, предварительно созданные файлы PDF и т. д.).
Вместо этого запросы на динамические ресурсы перенаправляются (2) в код на стороне сервера (показан на диаграмме как Веб-приложение ). Для «динамических запросов» сервер интерпретирует запрос, считывает необходимую информацию из базы данных (3), объединяет полученные данные с шаблонами HTML (4) и отправляет ответ, содержащий сгенерированный HTML (5,6).
Теперь обратим внимание на код, используемый для серверного и клиентского программирования. В каждом случае код значительно отличается:
- У них разные цели и задачи.
- Как правило, они используют разные языки программирования (за исключением JavaScript, который можно использовать как на стороне сервера, так и на стороне клиента).
- Они работают в разных средах операционных систем.
Код, работающий в браузере, известен как клиентский код и в первую очередь связан с улучшением внешнего вида и поведения отображаемой веб-страницы. Это включает в себя выбор и стилизацию компонентов пользовательского интерфейса, создание макетов, навигацию, проверку форм и т. д. Напротив, программирование веб-сайта на стороне сервера в основном включает в себя выбор того содержимого, которое возвращается в браузер в ответ на запросы. Код на стороне сервера обрабатывает такие задачи, как проверка отправленных данных и запросов, использование баз данных для хранения и извлечения данных и отправка правильных данных клиенту по мере необходимости.
Клиентский код написан с использованием HTML, CSS и JavaScript — он запускается внутри веб-браузера и практически не имеет доступа к основной операционной системе (включая ограниченный доступ к файловой системе).
Веб-разработчики не могут контролировать, какой браузер каждый пользователь может использовать для просмотра веб-сайта — браузеры обеспечивают непоследовательные уровни совместимости с функциями кода на стороне клиента, и часть проблемы программирования на стороне клиента заключается в корректной обработке различий в поддержке браузера .
Серверный код может быть написан на любом количестве языков программирования — примеры популярных серверных веб-языков включают PHP, Python, Ruby, C# и JavaScript (NodeJS). Серверный код имеет полный доступ к операционной системе сервера, и разработчик может выбрать, какой язык программирования (и конкретную версию) он хочет использовать.
Разработчики обычно пишут свой код с использованием веб-фреймворков . Веб-фреймворки — это наборы функций, объектов, правил и других конструкций кода, предназначенных для решения общих проблем, ускорения разработки и упрощения различных типов задач, возникающих в конкретной области.
Опять же, хотя и клиентский, и серверный код используют фреймворки, домены сильно различаются, а значит, и фреймворки. Веб-фреймворки на стороне клиента упрощают задачи компоновки и представления, в то время как веб-фреймворки на стороне сервера предоставляют множество «общих» функций веб-сервера, которые в противном случае вам пришлось бы реализовывать самостоятельно (например, поддержку сеансов, поддержку пользователей и аутентификацию, простой доступ к базе данных, библиотеки шаблонов и др.).
Примечание. Клиентские платформы часто используются для ускорения разработки клиентского кода, но вы также можете написать весь код вручную; на самом деле, написание кода вручную может быть быстрее и эффективнее, если вам нужен только небольшой простой пользовательский интерфейс веб-сайта.
Напротив, вы почти никогда не рассматривали бы возможность написания серверного компонента веб-приложения без фреймворка — реализовать жизненно важную функцию, такую как HTTP-сервер, действительно сложно с нуля, скажем, на Python, но веб-фреймворки Python, такие как Django, предоставляют один из коробки, наряду с другими очень полезными инструментами.
Программирование на стороне сервера очень полезно, потому что оно позволяет нам эффективно доставлять информацию, предназначенную для отдельных пользователей, и тем самым улучшать взаимодействие с пользователем.
Такие компании, как Amazon, используют программирование на стороне сервера для создания результатов поиска продуктов, предоставления целевых предложений продуктов на основе предпочтений клиентов и предыдущих покупательских привычек, упрощения покупок и т. д.
Банки используют программирование на стороне сервера для хранения информации об авторизованных пользователей для просмотра и совершения транзакций. Другие сервисы, такие как Facebook, Twitter, Instagram и Википедия, используют программирование на стороне сервера для выделения, обмена и контроля доступа к интересному контенту.
Ниже перечислены некоторые распространенные способы использования и преимущества серверного программирования. Вы заметите, что есть некоторое совпадение!
Эффективное хранение и доставка информации
Представьте, сколько товаров доступно на Amazon, и представьте, сколько постов написано на Facebook? Создавать отдельную статическую страницу для каждого товара или поста было бы совершенно нецелесообразно.
Программирование на стороне сервера позволяет вместо этого хранить информацию в базе данных, а также динамически создавать и возвращать файлы HTML и других типов (например, PDF-файлы, изображения и т. д.). Также можно возвращать данные (JSON, XML и т. д.) для рендеринга соответствующими веб-фреймворками на стороне клиента (это снижает нагрузку на сервер по обработке и объем данных, которые необходимо отправить).
Сервер не ограничивается отправкой информации из баз данных и может в качестве альтернативы возвращать результат программных инструментов или данные из коммуникационных служб. Контент может быть даже нацелен на тип клиентского устройства, которое его получает.
Поскольку информация находится в базе данных, ею также легче обмениваться и обновлять ее с другими бизнес-системами (например, когда товары продаются через Интернет или в магазине, магазин может обновлять свою базу данных запасов).
Примечание: Не нужно сильно напрягать воображение, чтобы увидеть преимущества серверного кода для эффективного хранения и доставки информации:
- Зайдите на Amazon или любой другой сайт электронной коммерции.
- Выполните поиск по ряду ключевых слов и обратите внимание на то, что структура страницы не меняется, хотя результаты меняются.
- Откройте два или три разных продукта. Обратите внимание еще раз, что они имеют общую структуру и макет, но содержимое для разных продуктов было взято из базы данных.
Для общего условия поиска («рыба», скажем) вы можете увидеть буквально миллионы возвращаемых значений. Использование базы данных позволяет эффективно их хранить и совместно использовать, а также позволяет контролировать представление информации только в одном месте.
Индивидуальный пользовательский интерфейс
Серверы могут хранить и использовать информацию о клиентах для обеспечения удобного и индивидуального взаимодействия с пользователем. Например, многие сайты хранят информацию о кредитных картах, поэтому данные не нужно вводить повторно. Такие сайты, как Google Maps, могут использовать сохраненные или текущие местоположения для предоставления информации о маршрутах, а также историю поиска или путешествий, чтобы выделять местные компании в результатах поиска.
Можно использовать более глубокий анализ привычек пользователей, чтобы предугадать их интересы и дополнительно настроить ответы и уведомления, например, предоставить список ранее посещенных или популярных мест, которые вы, возможно, захотите посмотреть на карте.
Примечание. Карты Google сохраняют историю поиска и посещений. Часто посещаемые или часто искомые места выделены больше, чем другие.
Результаты поиска Google оптимизируются на основе предыдущих поисков.
- Перейти к поиску Google.
- Поиск по запросу «футбол».
- Теперь попробуйте ввести «избранное» в поле поиска и посмотрите на подсказки автозаполнения.
Совпадение? Нада!
Контролируемый доступ к содержимому
Программирование на стороне сервера позволяет сайтам ограничивать доступ авторизованным пользователям и предоставлять только ту информацию, которую пользователю разрешено просматривать.
Реальные примеры включают сайты социальных сетей, которые позволяют пользователям определять, кто может видеть контент, который они размещают на сайте, и чей контент отображается в их ленте.
Примечание: Рассмотрим другие реальные примеры, когда доступ к содержимому контролируется. Например, что вы можете увидеть, если зайдете на онлайн-сайт своего банка? Войдите в свою учетную запись — какую дополнительную информацию вы можете просмотреть и изменить? Какую информацию вы видите, что только банк может изменить?
Сохранение информации о сеансе/состоянии
Программирование на стороне сервера позволяет разработчикам использовать сеансы — в основном механизм, который позволяет серверу хранить информацию о текущем пользователе сайта и отправлять различные ответы на основе этой информации.
Это позволяет, например, сайту узнать, что пользователь ранее входил в систему, и отображать ссылки на свою электронную почту или историю заказов, или, возможно, сохранять состояние простой игры, чтобы пользователь мог снова перейти на сайт и продолжить на том месте, где они его оставили.
Примечание: Посетите газетный сайт с моделью подписки и откройте несколько вкладок (например, The Age). Продолжайте посещать сайт в течение нескольких часов/дней. В конце концов, вы начнете перенаправляться на страницы, объясняющие, как подписаться, и вы не сможете получить доступ к статьям. Эта информация является примером информации о сеансе, хранящейся в файлах cookie.
Уведомления и связь
Серверы могут отправлять общие или пользовательские уведомления через сам веб-сайт или по электронной почте, SMS, мгновенным сообщениям, видеоразговорам или другим службам связи.
Вот несколько примеров:
- Facebook и Twitter отправляют электронные письма и SMS-сообщения, чтобы уведомлять вас о новых сообщениях.
- Amazon регулярно отправляет электронные письма о продуктах, в которых предлагаются продукты, похожие на уже купленные или просмотренные, которые могут вас заинтересовать.
- Веб-сервер может отправлять предупреждающие сообщения администраторам сайта о нехватке памяти на сервере или о подозрительной активности пользователя.
Примечание: Наиболее распространенным типом уведомления является «подтверждение регистрации». Выберите практически любой интересующий вас крупный сайт (Google, Amazon, Instagram и т. д.) и создайте новую учетную запись, используя свой адрес электронной почты. Вскоре вы получите электронное письмо, подтверждающее вашу регистрацию или требующее подтверждения для активации вашей учетной записи.
Анализ данных
Веб-сайт может собирать множество данных о пользователях: что они ищут, что покупают, что рекомендуют, как долго они остаются на каждой странице. Программирование на стороне сервера можно использовать для уточнения ответов на основе анализа этих данных.
Например, Amazon и Google рекламируют продукты на основе предыдущих поисков (и покупок).
Примечание: Если вы являетесь пользователем Facebook, перейдите в свою основную ленту и посмотрите поток сообщений. Обратите внимание, что некоторые посты расположены не в порядке нумерации — в частности, посты с большим количеством «лайков» часто находятся выше в списке, чем более свежие посты.
Также обратите внимание на то, какую рекламу вам показывают — вы можете увидеть рекламу вещей, которые вы просматривали на других сайтах. Алгоритм Facebook для выделения контента и рекламы может быть немного загадкой, но ясно, что он зависит от ваших лайков и привычек просмотра!
Поздравляем, вы дошли до конца первой статьи о программировании на стороне сервера.
Теперь вы узнали, что серверный код запускается на веб-сервере и что его основная роль заключается в управлении какая информация отправляется пользователю (в то время как код на стороне клиента в основном обрабатывает структуру и представление этих данных пользователю).
Вы также должны понимать, что это полезно, потому что позволяет нам создавать веб-сайты, которые эффективно предоставляют информацию, предназначенную для отдельных пользователей, и имеют хорошее представление о некоторых вещах, которые вы могли бы делать, когда вы сервер- сторонний программист.
Наконец, вы должны понимать, что серверный код может быть написан на нескольких языках программирования и что вам следует использовать веб-фреймворк, чтобы упростить весь процесс.
В следующей статье мы поможем вам выбрать лучший веб-фреймворк для вашего первого сайта. Здесь мы познакомим вас с основными взаимодействиями между клиентом и сервером чуть более подробно.
- Обзор: первые шаги
- Следующий
- Введение в серверную часть
- Обзор клиент-сервер
- Серверные веб-фреймворки
- Безопасность веб-сайта
Последнее изменение: , авторы MDN
Что такое СЕРВЕР и каковы его функции..?
Что такое сервер?
Сервер — это программа для ЭВМ, предоставляющая услуги другим программам для ЭВМ и их пользователям. Физический компьютер, на котором запущена серверная программа, часто называют СЕРВЕРОМ. Серверы выполняют различные важные задачи и действия, что очень важно для ИТ-инфраструктуры любой организации. Многие сложные процессы, которые происходят во время деятельности, например, безопасность и аутентификация для выставления счетов и заказов, покупка не может быть осуществлена без нескольких мощных серверов, обрабатывающих нагрузку, поэтому серверы очень важны для любой организации.
Функции сервера:
Основной и важной функцией сервера является прослушивание порта для входящих сетевых запросов, и хорошей демонстрацией этого является взаимодействие между веб-сервером и браузером. Для пользователя этот процесс мгновенный, но когда он щелкает ссылку во время серфинга в Интернете, за кулисами происходит несколько вещей, например, запрос веб-страницы передается на соответствующий веб-сервер, а сервер извлекает и собирает данные. веб-страницу и ретранслирует ее с использованием протокола, такого как HTTP, а браузер пользователя получает данные, преобразует их и отображает страницу.
Типы серверов
В основном существует три типа серверного оборудования, как указано ниже.
1. Сервер TowerЭто компьютер, предназначенный для использования в качестве сервера, встроенный в вертикальный шкаф, который стоит отдельно. Шкаф называется башней, который по размеру и форме похож на корпус для персонального компьютера в виде башни.
2. Стоечный серверСтоечный сервер представляет собой монтируемый в стойку сервер и компьютерный выделенный сервер для использования в качестве сервера и предназначен для установки в структуру, называемую стойкой. Стойка содержит несколько монтажных слотов, каждый из которых предназначен для фиксации аппаратного блока с помощью винтов.
3. Блейд-сервер
Блейд-сервер представляет собой серверную архитектуру, в которой несколько серверных модулей размещены в одном корпусе. Он широко используется для улучшения управления системой и может быть автономным или монтируемым в стойку, шасси обеспечивает источник питания, а каждый блейд-сервер имеет собственный ЦП, ОЗУ и хранилище.
Ниже перечислены некоторые распространенные серверы, используемые организациями.
1. Прокси-сервер
Это сервер, который называется компьютером, действует как посредник между компьютером пользователя и Интернетом и позволяет клиентским компьютерам устанавливать непрямые сетевые подключения к другим сетевым службам.
2. Почтовый сервер
Почтовый сервер — это компьютерная система, которая отправляет и получает электронную почту с использованием стандартных протоколов службы электронной почты, таких как протокол SMTP, который отправляет сообщения и обрабатывает исходящие почтовые запросы.
3. DNS-имя
Это программа, которая использует HTTP для предоставления пользователям файлов, образующих веб-страницы, в ответ на их запросы. Выделенные компьютеры и устройства могут называться веб-серверами.
4. Сервер приложений
Этот тип сервера действует как набор компонентов, доступных разработчику программного обеспечения через стандартный API, определенный для самой платформы. Обычно они выполняются в той же рабочей среде, что и их веб-серверы, и их основная работа заключается в поддержке построения динамических страниц.
5. Сервер Active Directory
Active Directory (AD) состоит из нескольких служб, которые работают на Windows Server для управления разрешениями и доступом к сетевым ресурсам. AD хранит данные в виде объектов и представляет собой отдельный элемент, такой как пользователь, группа, приложение или устройство, такое как принтер. Эти объекты обычно определяются либо как ресурсы, такие как принтеры или компьютеры, либо как участники безопасности, такие как пользователи или группы.
6. DHCP-СЕРВЕР
Здесь DHCP означает протокол динамической конфигурации хоста. Это сетевой протокол, используемый в IP-сетях, где он автоматически назначает IP-адрес и другую информацию каждому хосту в сети, поэтому он может эффективно взаимодействовать с другими конечными точками.
7. DNS-СЕРВЕР
DNS означает систему доменных имен. Это система Интернета для преобразования буквенных имен в числовые IP-адреса, например, когда URL-адрес вводится в браузере, DNS-серверы возвращают IP-адрес веб-сервера, связанного с этим именем.
8. Сервер терминалов
Сервер терминалов — это сетевое устройство, которое позволяет подключаться к нескольким сетевым системам клиент-сервер и подключаться к сети LAN. Microsoft представила эту концепцию, выпустив службы терминалов как часть ОС Windows Server.
9. Сервер печати
Он также называется сервером печати и представляет собой устройство, которое подключает принтеры к клиентским компьютерам по сети. Сервер печати принимает задания на печать с компьютеров и отправляет их на соответствующие принтеры.
10. Сервер связи в реальном времени
Этот термин используется для любых телекоммуникаций в режиме реального времени, которые происходят без задержек передачи и почти мгновенны с минимальной задержкой. Данные и сообщения RTC (сервер связи в реальном времени) не сохраняются между передачей и приемом.
11. FTP-сервер
Это сетевой протокол, используемый для перемещения компьютерных файлов между клиентом и сервером. FTP (протокол передачи файлов) основан на архитектуре модели клиент-сервер с использованием отдельных соединений для управления и передачи данных между клиентом и сервером.
12.
Сервер рассылокЭто сервер или серверная программа, которая обрабатывает запросы на подписку на список рассылки и распределяет новые сообщения и другие сообщения от членов списка по всему списку подписчиков.
13. Сервер Telnet
Это сетевой текстовый протокол, обеспечивающий двустороннюю интерактивную связь с использованием виртуального терминального соединения. Telnet позволяет подключаться к удаленному компьютеру через Интернет и использовать программы и данные, как если бы они находились на вашем локальном компьютере.
14. Сервер с открытым исходным кодом
Это программа, исходный код которой доступен для использования или изменения пользователями, где программное обеспечение с открытым исходным кодом всегда разрабатывается в рамках общественного сотрудничества и предоставляется бесплатно.
Как работает сервер?
В сети серверы называются в зависимости от того, что они обслуживают. Это относится к системе, которая способна обслуживать содержание и многие важные вещи. Система может работать под управлением Windows, Linux или других операционных систем. Например, веб-сервер может работать под управлением Windows, Linux или любой другой ОС в зависимости от вашего выбора. После выбора операционной системы для веб-сервера вы можете установить программное обеспечение, необходимое для того, чтобы эта система была веб-сервером.
Операционная системаОперационная система является интерпретатором между компьютерным оборудованием и программным обеспечением.
Клиентский компьютер:
Это компьютер в вашей сети, на котором сетевой пользователь выполняет некоторую сетевую активность. Возьмем в качестве примера загрузку файла с файлового сервера, просмотр внутренней сети/Интернета и т. д. Пользователь сети обычно использует клиентский компьютер для выполнения своей повседневной работы.
Компьютер-сервер:
Компьютер-клиент создает соединение с компьютером-сервером и получает доступ к службам, установленным на компьютере-сервере. Он не предназначен для сетевого пользователя, чтобы просматривать в Интернете или работать с электронными таблицами. Серверный компьютер устанавливается с соответствующей ОС и соответствующим программным обеспечением для обслуживания сетевых клиентов с помощью одной или нескольких служб.
Операционная система — это наиболее важный набор программ, которые первоначально загружаются в любое компьютероподобное устройство с помощью программы начальной загрузки. ОС управляет всеми ресурсами компьютера, включая сети, хранилище данных, пользователей и т. д.
Операционная сеть (Systems Server Operating Systems)Компьютер сетевого сервера предоставляет свои услуги группе сетевых клиентских устройств который имеет больше вычислительных ресурсов, таких как процессоры и вычислительная мощность, больше физической памяти (ОЗУ), больше места для хранения и т. д. Серверный компьютер работает на серверной операционной системе, которая называется сетевой операционной системой (NOS), и обычно имеет больше функции и возможности обработки по сравнению с операционной системой клиентского компьютера. На сервер может быть установлено специальное программное обеспечение для выполнения функций, подобных серверу.
Самые популярные сетевые операционные системы перечислены ниже:
• Windows NT (устаревшая)
• Windows 2000 (устаревшая)
• Windows 2003 (устаревшая)
• Windows 9 0 00 R (устаревшая) 9008/2 2008 / 2 20
• Windows 2012 / Windows 2012 R2 (устаревшая)
• Windows 2016 (устаревшая)
• Windows 2019 (текущая)
• Unix (Oracle Solaris, IBM AIX, HP UX, FreeBSD, NetBSD, OpenBSD, SCO Unix и т. д.) )
• GNU/Linux (Red Hat Enterprise Linux, Debian Linux, SUSE Enterprise, Ubuntu Server, CentOS Server, Mandriva, Fedora и т. д.
Наиболее популярные операционные системы рабочей станции клиента перечислены ниже:
• Windows 95/98/ME Vista (устаревшая)
• Windows NT Work Station/Windows 2000 Professional (устаревшая)
• XP (устаревшая)
• Windows 7 (устаревшая)
• Windows 8 / Windows 8.