logo
Bilet_1_2_4_6

Isapi-интерфейс Proxy Server

Второй главный компонент службы Web Proxy — интерфейс ISAPI. Приложения, основанные на нем, поддерживают средства динамического HTML и интеграцию Web с другими приложениями, например с базами данных.

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

Запросы ISAPI

Получив запрос, ISAPI-приложение осуществляет следующие операции.

  1. Выполняет аутентификацию клиента.

  2. Проверяет домен с помощью фильтра.

  3. Ищет требуемый ресурс в кэше (если там обнаруживается не устаревшая версия ресурса, она используется без повторного обращения к узлу Интернета).

  4. Если ресурс не найден в кэше, он извлекается из Интернета, передается клиенту и, при необходимости, помещается в кэш.

Если запрос корректен и для его обработки необходимо выполнить запрос к узлу Интернета, ISAPI-приложение разделяет указатель ресурса на компоненты, извлекая информацию о протоколе (HTTP, FTP или Gopher) и имя домена. Для обработки HTTP-запросов ISAPI-приложение напрямую вызывает соответствующие функции API Windows Sockets.

Запросы HTTP

Для HTTP-запросов весь ввод/вывод осуществляется асинхронно после определения имени домена. Чтобы выполнить запрос к узлу Интернета, ISAPI-приложение Proxy Server осуществляет следующие операции.

  1. Преобразует имя домена в IP-адрес, по возможности используя кэш системы доменных имен (Domain Name System, DNS).

  2. Подключается к удаленному узлу.

  3. Передает ему запрос.

  4. Получает от удаленного узла заголовок ответа и обрабатывает его.

  5. Принимает данные.

  6. Передает полученные данные клиенту и сохраняет их копию в кэше Proxy Server.

Служба Web Proxy иногда обрабатывает запрос довольно долго, что может повлиять на производительность Web-сервера. Кроме того, если компьютер Proxy Server одновременно обслуживает множество клиентов, служба Web Proxy перегрузит ISAPI-приложение Proxy Server.

Неразрывные соединения

ISAPI-приложения позволяют Proxy Server воспользоваться целым рядом возможностей IIS, включая такую важную, как поддержка Web-сервером неразрывных HTTP-соединений. В течение некоторого заданного времени с момента завершения запроса или ответа такое соединение не разрывается, сохраняя в результате и установленные TCP-соединения. Благодаря этому значительно повышается эффективность выполнения последующих запросов данного клиента к тому же серверу.

В качестве примера рассмотрим следующую ситуацию. Некая компания располагает небольшим числом компьютеров Proxy Server, обеспечивающих доступ в Интернет. Каждая попытка доступа к узлам HTTP, FTP или Gopher требует установки соединения между Web-обозревателем, работающим на компьютере-клиенте в локальной сети, и одним из представителей. Вероятность повторного использования соединения между тем же клиентом и тем же представителем довольно высока, поэтому исходное соединение не разрывается в течение интервала времени, заданного параметром Server Keep-Alive.

Білет 2