Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec.doc
Скачиваний:
16
Добавлен:
05.12.2018
Размер:
2.61 Mб
Скачать

1.7.7 Isapi

Чаще всего для выполнения каких-либо операций на сервере используется интерфейс CGI и CGI-программы, либо CGI-скрипты. Компания Microsoft, как всегда, предложила свой вариант исполнения серверных программ, который называется стандарт ISAPI. И в первую очередь он предназначался для подключения к ведущему Web-серверу Microsoft - Internet Information Server. Программы, написанные по этому стандарту, представляют собой давно известные нам динамически загружаемые библиотеки DLL, которые вызываются Web-сервером, загружаются в память и становятся как бы частью этого Web-сервера, расширяя или изменяя его функциональность.

В ответ на вызов Microsoft компания Netscape разработала свой стандарт NSAPI для своего Web-сервера. Так что война браузеров теперь дополнилась войной серверов. Для программиста же нет принципиальной разницы под какой стандарт разрабатывать dell. Компилятор Delphi сам выполняет всю черновую работу за вас.

Откомпилированная dll помещается в тот же каталог скриптов (SCRIPTS или CGI-BIN) на Web-сервере, куда выкладываются прочие серверные скрипты. Вызов на исполнение этой dll выглядит так же, как и вызов на исполнение любого другого серверного приложения/скрипта. Вот как выглядит запрос на запуск некой программы format.dll:

http://www.microsoft.com/cgi-bin/format.dll?disk=c

Преимущества ISAPI - в скорости выполнения операций. Программа загружается всего один раз и остается в памяти до тех пор, пока ее не выгрузят насильно или пока не остановят Web-сервер. Поэтому ISAPI-dll работает быстрее, чем обычная CGI-программа или скрипт. Основные недостатки - трудности при отладке, незамеченная ошибка может привести к зависанию не только самой dll, но и Web-сервера, частью которого она является. Самый главный недостаток - непереносимость. Если Perl-скрипт может выполняться как на UNIX платформе, так и на Windows-платформе, то dll намертво привязана к Windows.

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

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

Когда для одного события зарегистрировано несколько фильтров, они вызываются последовательно. Фильтры с более высоким приоритетом выполняются раньше фильтров с низким приоритетом. Если приоритеты у нескольких фильтров совпадают, то глобальные фильтры, заданные в основных свойствах, выполняются раньше фильтров, заданных на уровне узла. Фильтры с одинаковым приоритетом на одном уровне наследования выполняются в том порядке, в котором они были загружены. Допускается изменение порядка загрузки фильтров в окне свойств веб-сервера или веб-узла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]