Windows 10

Веб-сервисы как средство интеграции приложений в WWW. Веб-сервисы как средство интеграции приложений в WWW Создание системы клиент-сервер

Всемирная паутина является готовой платформой для создания и использования распределенных машинно-ориентированных систем на основе веб-сервисов. Веб-сервер выступает в качестве сервера приложений, к которым обращаются не конечные пользователи, а сторонние приложения. Это позволяет многократно использовать функциональные элементы, устранить дублирование кода, упростить решение задач интеграции приложений.

Веб-служба, веб-сервис (англ. web-service) - это сетевая технология, обеспечивающая межпрограммное взаимодействие на основе веб-стандартов. Консорциум W3C определяет веб-сервис, как «программную систему, разработанную для поддержки интероперабельного межкомпьютерного (machine-to-machine) взаимодействия через сеть»

Веб-службы: концепции и протоколы

Веб-сервис идентифицируется строкой URI . Веб-сервис имеет программный интерфейс, представленный в машинно-обрабатываемом формате . Другие системы взаимодействуют с этим веб-сервисом путем обмена сообщениями протокола . В качестве транспорта для сообщений используется протокол HTTP . Описание веб-сервисов и их API могут быть найдены средствами . Концептуальная схема технологии приведена на , а связь между протоколами - на рис. 2.

Рис. 1. Концепция веб-сервиса

  • SOAP (Simple Object Access Protocol) — протокол обмена сообщениями между потребителем и поставщиком веб-сервиса;
  • WSDL (Web Services Description Language) — язык описания внешних интерфейсов веб-службы;
  • UDDI (Universal Discovery, Description and Integration) — универсальный интерфейс распознавания, описания и интеграции, используемый для формирования каталога веб-сервисов и доступа к нему.

Рис. 2. Протоколы веб-сервисов

Все спецификации, используемые в технологии, основаны на XML и, соответственно, наследуют его преимущества (структурированность, гибкость и т.д.) и недостатки (громоздкость, медлительность).

SOAP

SOAP (изначально Simple Object Access Protocol , а в версии 1.2 официальная расшифровка аббревиатуры отсутствует) - простой протокол доступа к объектам (компонентам распределенной вычислительной системы), основанный на обмене структурированными сообщениями. Как любой текстовый протокол, SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTPS и др., но чаще всего SOAP используется поверх HTTP.

Все сообщения SOAP оформляются в виде структуры, называемой конвертом (envelop), включающей следующие элементы:

  • Идентификатор сообщения (локальное имя).
  • Опциональный элемент Header (заголовок):
    • Ноль или более свойств, доступных в этом пространстве имен.
  • Обязательный элемент Body (тело сообщения)
    • Ноль или более ссылок на используемые пространства имен;
    • Дочерние элементы тела сообщения

Развернутый список элементов сообщения SOAP приведен в схеме данных (для SOAP версии 1.2).

Пример сообщения SOAP:

Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope "> Header > 1 2001-06-22T14:00:00-05:00 Header > Body > Get up at 6:30 AM Body > Envelope >

XML-RPC: Не конкурент, а альтернатива SOAP

XML-RPC — очень простой и эффективный протокол взаимодействия веб-сервисов. Он не предназначен для решения глобальных задач, как SOAP, но широко используется во многих веб-разработках.

Концепция XML-RPC

Таблица 1. Основные элементы протокола WSDL.

Элемент WSDL 1.1 Элемент WSDL 2.0 Краткое описание
PortType Interface Представляет описание интерфейса веб-сервиса (список операций и их параметров).
Service Service Список системных функций
Binding Binding Специфицирует интерфейсы и задает параметры связывания с протоколом SOAP: стиль связывания (RPC/Document) и транспорт (SOAP). Эта секция доступна и для каждой из операций
Operation Operation Определяет операцию, представляемую веб-сервером. WSDL-операция — это аналог традиционным функциям и процедурам.
Message не использ. Сообщение, связанное с определенной операцией. Содержит информацию, необходимую для выполнения данной операции. Каждое сообщение может состоять из нескольких логических частей, описывающих типы данных и имена атрибутов. В версии 2.0 было исключено, т.к. была внедрена поддержка XML Schema для всех элементов.
Types Types Описание данных в соответствии с XML Schema.

Рис. 3. Структура протокола WSDL

В спецификации WSDL 1.1 было определено 4 шаблона обмена сообщениями (типы операций):

  • Однонаправленные операции (One-way): операция может принимать сообщение, но не будет возвращать ответ.
  • Запрос-ответ (Request-response): операция может принять запрос и должна вернуть ответ.
  • Вопрос-ответ (Solicit-response): операция может послать запрос и будет ждать ответ на него.
  • Извещение (Notification): операция может послать сообщение, но не будет ожидать ответ.

В версии WSDL 2.0 эти шаблоны изменены и расширены в сторону поддержки сообщений об ошибках (например, шаблон Robust-in-only), но для обратной совместимости поддерживаются типы WSDL 1.1

UDDI опирается на отраслевые стандарты HTTP, XML, XML Schema (XSD), SOAP и WSDL. Концептуальная связь между UDDI и другими протоколами стека веб-сервисов показана на .

Рис. 4. Место UDDI в стеке протоколов веб-служб

Функциональное назначение реестра UDDI — представление данных и метаданных о веб-службах. Он может использоваться как в сети общего пользования, так и в пределах внутренней инфраструктуры организации. Реестр UDDI предлагает основанный на стандартах механизм классификации, каталогизации и управления веб-службами, позволяющий применять их (веб-сервисы) другими приложениями. Этот механизм включает средства для поиска сервиса, вызова этой службы, а также для управления метаданными об этой службе.

Ключевыми функциями UDDI являются публикация информации о службе в реестре и поиск этой информации сторонними приложениями. Наряду с этими, реализованы и типовые для службы каталогов функции: представление модели хранимых данных и структуры информационной базы, отношения между объектами реестра, репликация, обеспечение безопасности и т.д. —Все основные функции реестра представлены в виде веб-сервисов и доступны через API UDDI.

Веб-сервисы: Pro et Contra

Достоинства

  • Обеспечивают взаимодействие программных систем независимо от платформы.
  • Основаны на базе открытых стандартов и протоколов.
  • Использование HTTP позволяет приложениям взаимодействовать через межсетевой экран.

Недостатки

  • Меньшая производительность и больший объем сетевого трафика по сравнению с такими технологиями как CORBA или DCOM.

Постоянный адрес этой страницы:

HTTP . В его основу положено взаимодействие " клиент-сервер ", то есть предполагается, что:
  1. Потребитель- клиент инициировав соединение с поставщиком-сервером посылает ему запрос;
  2. Поставщик- сервер , получив запрос, производит необходимые действия и возвращает обратно клиенту ответ с результатом.

    При этом возможны два способа организации работы компьютера-клиента:

    • Тонкий клиент - это компьютер-клиент, который переносит все задачи по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями.
    • Толстый клиент , напротив, производит обработку информации независимо от сервера, использует последний в основном лишь для хранения данных.

Прежде чем перейти к конкретным клиент-серверным веб-технологиям, рассмотрим основные принципы и структуру базового протокола HTTP .

Протокол HTTP

HTTP (HyperText Transfer Protocol - RFC 1945, RFC 2616) - протокол прикладного уровня для передачи гипертекста.

Центральным объектом в HTTP является ресурс , на который указывает URL в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя изначально данный протокол предназначен для передачи символьной информации. На первый взгляд это может показаться излишней тратой ресурсов. Действительно, данные в символьном виде занимают больше памяти, сообщения создают дополнительную нагрузку на каналы связи, однако подобный формат имеет много преимуществ. Сообщения, передаваемые по сети, удобочитаемы, и, проанализировав полученные данные, системный администратор может легко найти ошибку и устранить ее. При необходимости роль одного из взаимодействующих приложений может выполнять человек, вручную вводя сообщения в требуемом формате.

В отличие от многих других протоколов, HTTP является протоколом без памяти. Это означает, что протокол не хранит информацию о предыдущих запросах клиентов и ответах сервера. Компоненты, использующие HTTP , могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Например, клиентское веб- приложение , посылающее запросы, может отслеживать задержки ответов, а веб- сервер может хранить IP-адреса и заголовки запросов последних клиентов.

Все программное обеспечение для работы с протоколом HTTP разделяется на три основные категории:

  • Серверы - поставщики услуг хранения и обработки информации (обработка запросов).
  • Клиенты - конечные потребители услуг сервера (отправка запросов).
  • Прокси-серверы для поддержки работы транспортных служб.

Основными клиентами являются браузеры , например: Internet Explorer, Opera, Mozilla Firefox, Netscape Navigator и другие. Наиболее популярными реализациями веб-серверов являются: Internet Information Services ( IIS ), Apache, lighttpd, nginx. Наиболее известные реализации прокси-серверов: Squid, UserGate, Multiproxy, Naviscope.

"Классическая" схема HTTP -сеанса выглядит так.

  1. Установление TCP-соединения.
  2. Запрос клиента.
  3. Ответ сервера.
  4. Разрыв TCP-соединения.

Таким образом, клиент посылает серверу запрос , получает от него ответ, после чего взаимодействие прекращается. Обычно запрос клиента представляет собой требование передать HTML -документ или какой-нибудь другой ресурс , а ответ сервера содержит код этого ресурса.

В состав HTTP -запроса, передаваемого клиентом серверу, входят следующие компоненты.

  • Строка состояния (иногда для ее обозначения используют также термины строка-статус, или строка запроса).
  • Поля заголовка.
  • Пустая строка.
  • Тело запроса.

Строку состояния вместе с полями заголовка иногда называют также заголовком запроса .


Рис. 2.1.

Строка состояния имеет следующий формат:

метод_запроса URL_pecypca версия_протокола_НТТР

Рассмотрим компоненты строки состояния, при этом особое внимание уделим методам запроса.

Метод , указанный в строке состояния, определяет способ воздействия на ресурс , URL которого задан в той же строке. Метод может принимать значения GET , POST , HEAD , PUT , DELETE и т.д. Несмотря на обилие методов, для веб-программиста по-настоящему важны лишь два из них: GET и POST .

  • GET . Согласно формальному определению, метод GET предназначается для получения ресурса с указанным URL. Получив запрос GET , сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. Ресурс, URL которого передается в составе запроса, не обязательно должен представлять собой HTML-страницу, файл с изображением или другие данные. URL ресурса может указывать на исполняемый код программы, который, при соблюдении определенных условий, должен быть запущен на сервере. В этом случае клиенту возвращается не код программы, а данные, сгенерированные в процессе ее выполнения. Несмотря на то что, по определению, метод GET предназначен для получения информации, он может применяться и в других целях. Метод GET вполне подходит для передачи небольших фрагментов данных на сервер.
  • POST . Согласно тому же формальному определению, основное назначение метода POST - передача данных на сервер. Однако, подобно методу GET , метод POST может применяться по-разному и нередко используется для получения информации с сервера. Как и в случае с методом GET , URL, заданный в строке состояния, указывает на конкретный ресурс. Метод POST также может использоваться для запуска процесса.
  • Методы HEAD и PUT являются модификациями методов GET и POST.

Версия протокола HTTP , как правило, задается в следующем формате:

HTTP/версия.модификация

Поля заголовка , следующие за строкой состояния, позволяют уточнять запрос , т.е. передавать серверу дополнительную информацию. Поле заголовка имеет следующий формат:

Имя_поля: Значение

Назначение поля определяется его именем, которое отделяется от значения двоеточием.

Имена некоторых наиболее часто встречающихся в запросе клиента полей заголовка и их назначение приведены в таблице 2.1 .

Таблица 2.1. Поля заголовка запроса HTTP.
Поля заголовка HTTP -запроса Значение
Host Доменное имя или IP-адрес узла, к которому обращается клиент
Referer URL документа, который ссылается на ресурс, указанный в строке состояния
From Адрес электронной почты пользователя, работающего с клиентом
Accept MIME-типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент
Accept-Language Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом
Accept-Charset Перечень поддерживаемых наборов символов
Content-Type MIME-тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка)
Content-Length Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка)
Range Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть
Connection Используется для управления TCP-соединением. Если в поле содержится Close, это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP-соединение, чтобы оно могло быть использовано для последующих запросов
User-Agent Информация о клиенте

Во многих случаях при работе в Веб тело запроса отсутствует. При запуске CGI-сценариев данные, передаваемые для них в запросе, могут размещаться в теле запроса.

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

Сетевые протоколы предписывают правила работы компьютерам, которые подключены к сети. Они строятся по многоуровневому принципу. Протокол некоторого уровня определяет одно из технических правил связи. В настоящее время для сетевых протоколов используется модель OSI (Open System Interconnection - Взаимодействие Открытых Систем, ВОС). Модель OSI – это семиуровневая логическая модель работы сети. Модель OSI реализуется группой протоколов и правил связи, организованных в несколько уровней.

На физическом уровне определяются физические (механические, электрические, оптические) характеристики линий связи.

На канальном уровне определяются правила использования физического уровня узлами сети.

- Сетевой уровень отвечает за адресацию и доставку сообщений.

- Транспортный уровень контролирует очередность прохождения компонент сообщения.

Задача сеансного уровня - координация связи между двумя прикладными программами, работающими на разных рабочих станциях.

- Уровень представления служит для преобразования данных из внутреннего формата компьютера в формат передачи.

- Прикладной уровень является пограничным между прикладной программой и другими уровнями. Прикладной уровень обеспечивает удобный интерфейс связи сетевых программ пользователя.

Протокол TCP/IP - это два протокола нижнего уровня, являющиеся основой связи в Интернет. Протокол TCP (Transmission Control Protocol) разбивает передаваемую информацию на порции и нумерует все порции. С помощью протокола IP (Internet Protocol) все части передаются получателю. Далее с помощью протокола TCP проверяется, все ли части получены. При получении всех порций TCP располагает их в нужном порядке и собирает в единое целое.

Наиболее известные протоколы, используемые в сети Интернет:

HTTP (Hyper Text Transfer Protocol) - это протокол передачи гипертекста. Протокол HTTP используется при пересылке Web-страниц с одного компьютера на другой.

FTP (File Transfer Protocol) – это протокол передачи файлов со специального файлового сервера на компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать файл с удаленного компьютера на свой или скопировать файл со своего компьютера на удаленный.

POP (Post Office Protocol) - это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.



Стандарт SMTP (Simple Mail Transfer Protocol) задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.

UUCP (Unix to Unix Copy Protocol) - это ныне устаревший, но все еще применяемый протокол передачи данных, в том числе для электронной почты. Этот протокол предполагает использование пакетного способа передачи информации, при котором сначала устанавливается соединение «клиент – сервер» и передается пакет данных, а затем автономно происходит его обработка, просмотр или подготовка писем.

TELNET - это протокол удаленного доступа. TELNET дает возможность абоненту работать на любом компьютере сети Интернет, как на своем собственном, то есть запускать программы, менять режим работы и т.д. На практике возможности лимитируются тем уровнем доступа, который задан администратором удаленной машины.

DTN - протокол, предназначенный для обеспечения сверхдальней космической связи.

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Web-сервис (служба) – программа, которая организовывает взаимодействие между сайтами. Информация с одного портала передается на другой.

Например, есть авиакомпания. У нее много рейсов, соответственно, много билетов. Информацию через веб-службу она передает сайту-агрегатору тур-путешествий. Пользователь, который заходит на агрегатор, сможет прямо там купить билеты этой авиакомпании.

Другой пример веб-сервисов - это сайт отслеживания погоды, который содержит сведения о метеоусловиях в конкретном городе или по стране в целом. Данная информация также часто используется сторонними .

Информация в интернете разнородна. Сайты управляются разными системами. используются разные протоколы передачи и шифрования. Веб-сервисы упрощают обмен информацией между разными площадками.

Архитектура и протоколы Web-сервисов

Можно определить 3 инстанции, которые взаимодействуют между собой: каталог, исполнитель и заказчик. После создания сервиса, исполнитель регистрирует его в каталоге, а там сервис находит заказчик.

Механизм обмена данными формируется в описании Web Services Description. Это спецификация, охватывающая форматы пересылки, типы контента, транспортные протоколы, которые применяются в процессе обмена сведениями между заказчиком и транспортировщиком услуг.

Сегодня чаще всего используются несколько технологий для реализации различных веб-сервисов:

  1. TCP/IP – протокол, который понимается практически любым сетевым оборудованием, от мэйнфреймов до портативных устройств и PDA.
  2. HTML - универсальный язык разметки, используемый для демонстрации контента устройствами потребителей.
  3. XML – универсальное средство для обработки всех разновидностей данных. На его базе могут работать и прочие протоколы обмена информацией: SOAP и WSDL.
  4. UDDI – универсальный источник распознавания, интеграции и описания. Работает, как правило, в частных сетях и пока не нашел достаточного распространения.

Универсальность представленных технологий – основа для понимания веб служб. Они работают на стандартных технологиях, не зависящих от поставщиков приложений и прочих ресурсов сети. Могут использоваться в любых операционных системах, серверах приложений, языков программирования и т.д.

Преимущества

  • Создание необходимых условий для взаимодействия программных компонентов вне зависимости от платформы.
  • Веб-сервисы основываются на открытых стандартных протоколах. За счет внедрения XML обеспечивается простота формирования и настройки веб-сервисов.
  • Применение HTTP гарантирует взаимодействие систем посредством межсетевого доступа.

Недостатки

  • Невысокая производительность и большой объем трафика, в сравнении с системами RMI, CORBA, DCOM, за счет использоваться XML-сообщений в разрезе текста.
  • Уровень безопасности. Все современные веб-сервисы должны внедрять кодирование, и требовать авторизации пользователя. Хватит ли здесь наличия HTTPS или необходимы более надежные протоколы, как XML Encryption, SAML и т.д., – решаются в ходе разработки.

Задачи веб-сервисов

Веб-сервисы могут использоваться во многих сферах.

B2B-транзакции

Интеграция процессов идет сразу, без участия людей. Например, пополнение каталога интернет-магазина новыми товарами. Их привозят на склад, и кладовщик отмечает в базе данных приход. Автоматически информация передается в интернет-магазин. И покупатель вместо пометки “Нет на складе” на карточке товара видит его количество.

Интеграция сервисов предприятий

Если в компании используются корпоративные программы, то веб-сервис поможет настроить их совместную работу.

Создание системы клиент-сервер

Сервисы используются, чтобы настроить работу клиента и сервера. Это дает преимущества:

  • можно продавать не само программное обеспечение, а делать платным доступ к веб-сервису;
  • легче решать проблемы с использованием стороннего ПО;
  • проще организовывать доступ к контенту и материалам сервера.

Веб-сервис - это приложение, которое упрощает техническую настройку взаимодействия ресурсов.

После того, как клиент подключился к услуге по определенному порту, он получает доступ к услуге, воспользовавшись установленным протоколом. Протокол - это заранее разработанный порядок обмена информацией стороны, желающей воспользоваться услугой, и стороны, оказывающей услугу. «Стороной», которой нужна услуга, может быть человек, однако чаще всего это компьютерная программа, например, WEB браузер. Протоколы часто представляют собой текстовое описание процедуры обмена информацией между клиентом и сервером.

UNIX

Возможно, самый простой протокол у услуги daytime. Если подключиться к порту 13 машины, поддерживающей сервер daytime, этот сервер отправит в ответ информацию о текущей дате и времени и затем отключит соединение. Протокол выглядит следующим образом: «Если клиент устанавливает связь с сервером daytime, ему отправляются данные даты и времени, после чего соединение отключается». Большинство машин с UNIX поддерживают этот сервер. Можно связаться с ним, используя приложение Telnet. В UNIX сессия будет иметь следующий вид:

  • %telnet web67.ntx.net 13
  • Соединение с web67.ntx.net.
  • Символ отмены "^]".
  • Воскресенье 25 октября 08:34:06 1998

Windows

На машине, работающей под ОС Windows, можно получить доступ к этому серверу, введя «telnet web67.ntx.net 13» в окне MSDOS.

В этом примере web67.ntx.net - серверная машина UNIX, а 13 - номер порта для услуги daytime. Приложение Telnet подключается к порту 13 (telnet обычно подключается к порту 23, но можно указать любой другой порт для подключения), затем сервер отправляет данные даты и времени, после чего разрывает соединение. В большинстве версий Telnet есть возможность указывать номер порта и этой возможностью можно пользоваться независимо от того, какая версия Telnet установлена на машине.

Большинство протоколов более сложны, чем протокол для daytime, они определены в имеющихся в свободном доступе Рабочих предложениях (Request for Comment, RFC) (хороший архив всех RFC смотрите sunsite.auc.dk/RFC/). Каждый WEB сервер в Интернете соответствует требованиям протокола HTTP, собранным в документе The Original HTTP в 1991 году. Наиболее важная форма протокола, которая воспринимается HTTP сервером, включает только одну команду: GET. Если установить связь с сервером, работающим по протоколу HTTP и послать запрос «GET имя файла» сервер отреагирует отправкой источнику запроса содержимого указанного файла, после чего отключит соединение. Типичная сессия имеет следующий вид:

  • %telnet сайт 80
  • Попытка соединения с 78.110.59.235…
  • Соединение с pcwork.ru.
  • Символ отмены "^]".
  • Соединение отключено внешним хост компьютером.

В начальном варианте протокола HTTP нужно было отправить только действительное имя файла, например, [/] или Позже протокол изменили, чтобы получить возможность обработки полных URL. Это позволило компаниям, которые занимаются виртуальных доменов, в условиях, когда много доменов размещают на одной машине, использовать для всех таких доменов один IP адрес.

Подведем итог

Прочитав эту статью, вы узнали очень много об . В частности, вы теперь знаете, что при вводе в браузере URL происходит следующее:

  1. разделил URL на три части:
  • Протокол («http»)
  • Имя сервера («сайт») - в последнее время положительная тенденция сокращать первые три буквы www
  • Имя файла («web server.htm»)
  • Браузер связывается с сервером имен для перевода имени сервера, в IP адрес, который используется этим браузером для соединения с соответствующей серверной машиной.
  • После получения IP адреса указанный браузер устанавливает соединение с WEB сервером, обладающим этим IP адресом, по порту 80.
  • В соответствии с протоколом HTTP, браузер отправляет на этот сервер запрос GET на получение файла (Заметим, что вместе с запросом GET с браузера на сервер могут отправляться куки - подробности можно узнать из статьи о том, как работают куки).
  • Сервер отправляет текст HTML запрошенной WEB страницы на браузер. (В заголовке страницы с сервера на браузер также могут передаваться куки).
  • Браузер считывает таги HTML и воспроизводит соответствующую страницу на экране монитора.
  • Дополнение: Безопасность

    Из этого описания можно сделать вывод, что WEB сервер может быть довольно простой программой. Он принимает имя файла, отправленное с командой GET, находит искомый файл и отправляет его браузеру. Даже с учетом всего кода управления портами и связи через порты, можно без труда создать программу на языке Си, выполняющую роль простого WEB сервера, которая состояла бы менее чем из 500 строк программного кода. Разумеется, полнофункциональный корпоративный WEB сервер более сложен, однако основные принципы его работы по-прежнему остаются очень простыми.

    В рабочий процесс большинства серверов добавляется тот или иной уровень безопасности. Для этого, например, используются защищенные паролем страницы. При попытке открыть такую страницу браузером выдается диалоговое окно с требованием введения имени и пароля. Сервер предоставляет владельцу WEB страницы возможность использования списка имен и паролей людей, которым разрешен доступ на эту страницу; при этом сервер разрешает просмотр страницы только тем, кто располагает соответствующим паролем. В усовершенствованных серверах имеются дополнительные функции безопасности, позволяющие шифровать информацию, которой обмениваются сервер и браузер, что дает возможность передавать по Интернету конфиденциальную информацию, например, номера кредитных карточек.

    Это практически все функции, которые может выполнять сервер, предназначенный для отправки стандартных, статических WEB страниц. Статическими называют такие WEB страницы, которые не меняются, пока их не отредактирует разработчик.

    Дополнение: Динамические страницы

    А как же с динамическими WEB страницами? Например:

    • В любой книге отзывов разрешается оставлять сообщения в HTML форме и при следующем ее просмотре на этой странице сохраняется новая введенная информация.
    • В экранной форме whois компании Network Solutions в ответ на ввод имени домена приходят WEB страница, вид которой зависит от введенного имени.
    • В любой поисковой машине в HTML форму вводятся ключевые слова, после чего машина создает страницу, отображающую результат поиска по этим словам.

    Во всех перечисленных случаях WEB сервер не просто ищет нужный файл. Он обрабатывает полученную информацию и создает WEB страницу, определенным образом соответствующую полученному запросу. Почти во всех случаях для решения этой задачи WEB сервер использует так называемую процедуру CGI.

    Каждая серверная машина открывает доступ из Интернета к услугам, используя пронумерованные порты, по одному для каждой услуги, имеющейся на сервере. Например, если на серверной машине имеется WEB сервер и FTP сервер, обычно доступ к WEB серверу производится через порт 80, а к FTP серверу - через порт 21. Клиенты подключаются к услуге, выбрав соответствующий адрес и подключившись к соответствующему порту.

    Каждой популярной услуге поставлен в соответствие определенный номер порта. Ниже приводятся номера чаще всего используемых портов:

    • echo 7
    • daytime 13
    • qotd 17 (Цитата дня)
    • ftp 21
    • telnet 23
    • smtp 25 (Электронная почта)
    • time 37
    • nameserver 53 (Сервер имен)
    • nicname 43 (Кто есть кто)
    • gopher 70
    • finger 79
    • WWW 80

    Ограничения

    Если серверная машина разрешает подключение к порту из сети Интернет и этот порт не защищен , можно подключиться к нему из любой точки Интернета и пользоваться соответствующей услугой. Следует отметить, что нет каких-либо ограничений, предписывающих, например, WEB серверу подключаться по порту 80. Вводя в действие собственную машину и устанавливая на ней программное обеспечение WEB сервера, можно при желании указать, чтобы WEB сервер работал, например, по порту 918, или по любому другому незанятому порту. Затем, если машине присвоено имя xxx.yyy.com, можно подключиться к этому серверу через Интернет, используя URL xxx.yyy.com:918. Часть «:918» явно указывает на номер порта и должна добавляться всеми желающими связаться с этим сервером. Если порт не указан, браузер по умолчанию пытается подключиться к общепринятому порту 80.