Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции 2005 / P6 / Разработка HTML-форм и приложений.doc
Скачиваний:
36
Добавлен:
16.04.2013
Размер:
70.14 Кб
Скачать

3) Пустая строка

4) Тело ответа- в теле ответа содержится код передаваемого клиенту ресурса. Например, HTML-документ или другой ресурс. Способ обработки ресурса, содержащегося в теле ответа, указывается в поле заголовка Content-Type(например, text/html).

Другие типы web-приложений.

1. WinCgi приложения.

Разновидность обычного CGI приложения, адаптированного под ОС Windows.

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

2. Приложения isapi (Internet Server Application Program Interface).

ISAPI определяет правила взаимодействия между web-сервером и другими приложениями. Главное отличие от CGI-приложений: ISAPI-приложения представляют собой динамическую подключаемую библиотеку DLL. Эта библиотека при вызове приложения загружается не как отдельный процесс, а как поток принадлежащий web-серверу. Благодаря этому ISAPI-приложения имеют

Три существенных преимущества перед CGI-приложениями:

1) Поток требует существенно меньших ресурсов, чем отдельный процесс, что способствует меньшей загрузке сервера;

2) ISAPI-приложения выполняются в адресном пространстве web-сервера, поэтому работает быстрее, чем отдельный процесс;

3) В отличие от CGI-приложения ISAPI-приложение может оставаться постоянно загруженным в оперативную память сервера, а не загружаться каждый раз при поступлении нового запроса как это имеет место в случае с CGI-приложением. Благодаря этому снижается нагрузка на сервер и уменьшается время обработки запроса.

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

ISAPI-приложения делятся на 2 группы:

1) Расширения ISAPI- получают данные от браузера (например, из формы заполненной пользователем), обрабатывают эти данные и посылают ответ браузеру в виду сформированного HTML-документа;

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

2) Фильтры ISAPI- предназначены для контроля всех данных, проходящих через web-сервер на уровне протокола HTTP, поэтому фильтры ISAPI можно применять для решения таких задач: шифрование или перекодировка данных, сжатие информации. Они пригодны также для создания собственных процедур подключения пользователей к системе и проверке идентификации пользователей, а также для сбора статистической информации об использовании ресурсов сервера.

Обращение к динамически подключаемой библиотеке, которая представляет собой расширение ISAPI, выполняется в HTML-документах аналогично обращению к CGI-приложению. В тегах <FORM> или <A> указывается адрес расширения ISAPI и с помощью этих форм или соответствующих гиперссылок можно осуществить обращение расширением ISAPI. Когда пользователь обращается к расширению ISAPI, соответствующая DLL загружается в адресное пространство web-сервера и становится его составной частью - это позволяет расширению ISAPI пользоваться всеми ресурсами, доступными web-серверу, что существенно увеличивает производительность. Производительность сохраняется на достаточно высоком уровне и в тех случаях, когда расширение web-сервера активно используется одновременно многими пользователями.

Пример: 20 пользователей загружают одно приложение.

CGI: создается 20 процессов (не очень хорошо);

ISAPI: в оперативную память загружается одна DLL, и все приложения обрабатываются одним расширением ISAPI (плохо в плане безопасности).

Многопоточный режим работы расширения ISAPI создает доп. проблемы при отладке.