Шаг 239.
Среда программирования Visual C++.
ISAPI-расширения сервера

    На этом шаге мы рассмотрим назначение ISAPI-расширения сервера.

    Начиная с этого шага мы научимся писать программы, расширяющие функциональные возможности Web-серверов Microsoft средствами ISAPI. Вы узнаете о двух типах программ - ISAPI-расширениях сервера (ISAPI server extensions) и ISAPI-фильтрах (ISAPI filters), которые реализуются в виде DLL. ISAPI-расширение сервера - это программа, выполняемая в процессе интернет-сервера. ISAPI-фильтр перехватывает информационные потоки в/из сервера, что позволяет ему вести журнал, шифровать данные и т. д.

ISAPI-расширения сервера

    ISAPI-расширение сервера - это программа, выполняемая на сервере в ответ на вызов из Web-браузера пользователя. Расширение сервера реализуется в виде DLL, загружаемой IIS. Запустить эту программу в браузере можно, указав имя DLL-файла в URL-адресе:

    http://myserver/apps/charts.dll

    ISAPI-расширение сервера реализует функции, вызываемые из браузера. Для этого нужно в конце URL добавить имя функции следующим образом:

    http://myserver/apps/charts.dll?GetChart

    Этот пример содержит ссылку на расширение сервера charts.dll и вызывает его функцию GetChart(). Во всех расширениях сервера определяется функция по умолчанию, которая вызывается, если клиент явно не указал имя функции. Функции расширения сервера могут принимать параметры, которые также указываются в URL:

    http://myserver/apps/charts.dll?GetChart?Fund=ARSC

    ISAPI-расширение сервера разрешается связывать с HTML-формой, присваивая URL-адрес расширения атрибуту action в тэге <FORM>, как показано ниже:

    <FORM action="myextension.dll?GetColor" method=POST> 
    <!- здесь помещаются элементы управления формы -> 
    </FORM>

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

    ISAPI-расширения сервера базируются на стандарте Common Gateway Interface (CGI). Это часть протокола HTTP, позволяющая браузерам обращаться к сценариям и отдельным программам, выполняемым на Web-сервере. Microsoft разработала IIS таким образом, что DLL-библиотеки расширения сервера загружаются и выполняются по запросу любого браузера, не нарушая при этом спецификаций HTTP/CGI. Поскольку DLL-библиотеки выполняются как часть загрузившего их процесса, то расширения сервера работают быстрее сценариев, которым зачастую приходится загружать дополнительные программы.

    CGI переносит основную нагрузку по программированию на сервер. Работая с CGI-параметрами, браузер передает на сервер лишь небольшой объем информации. Сервер в свою очередь может делать с ней абсолютно все, что ему заблагорассудится, включая обращение к базе данных, создание изображений и управление периферийными устройствами. Сервер возвращает в браузер файл (HTML или другой), считанный с диска или сгенерированный им самим.

    На следующем шаге мы рассмотрим cоздание ISAPI-расширения сервера средствами MFC.




Предыдущий шаг Содержание Следующий шаг