Главная / Интернет-технологии /
Программирование в IIS / Тест 5
Программирование в IIS - тест 5
Упражнение 1:
Номер 1
Расширения ISAPI являются:
Ответ:
 (1) библиотеками DLL 
 (2) библиотеками COM 
 (3) библиотеками MFC 
 (4) библиотеками JDK 
Номер 2
Фильтры ISAPI обычно выполняют следующие задачи:
Ответ:
 (1) шифрование 
 (2) аутентификация 
 (3) сжатие данных 
 (4) ведение журналов 
Номер 3
URL формируется согласно следующему синтаксису:
Ответ:
 (1) <схема>://<пользователь>:<пароль>@<узел>:<порт>/<url-путь>
 
 (2) <схема>://<пользователь>:<пароль>@<узел>:<порт>/<url-путь>/<дополнительная информация>
 
 (3) <схема>://<пользователь>:<пароль>@<узел>/<url-путь>/<дополнительная информация>
 
 (4) <схема>://<url-путь>/<дополнительная информация>
 
Упражнение 2:
Номер 1
Компонентами URL являются:
Ответ:
 (1) пользователь 
 (2) порт 
 (3) схема 
 (4) дополнительная информация 
 (5) узел 
 (6) url-путь 
 (7) пароль 
Номер 2
Построение абстракции логики - это задача:
Ответ:
 (1) разработчика 
 (2) администратора 
 (3) пользователя 
Номер 3
ISAPI для расширений состоит из:
Ответ:
 (1) функций API 
 (2) функций JDK 
 (3) структур и классов, являющихся параметрами функций API 
 (4) структур и классов, являющихся параметрами функций JDK 
Упражнение 3:
Номер 1
Расширение ISAPI можно написать, используя файл включения расширения httpext.h
и файл DLL definition export file
(DEF) с экспортом следующих функций:
Ответ:
 (1) HttpExtensionProc
 
 (2) HttpExtension
 
 (3) GetExtension
 
 (4) GetExtensionVersion
 
Номер 2
Для получения классов и структур ISAPI мастер расширения ISAPI использует файлы заголовков для поддержки от:
Ответ:
 (1) ATL 
 (2) MFC 
 (3) httpext.h
 
 (4) httpinf.h
 
Номер 3
Чтобы создать в Visual Studio .NET проект Win32 надо выполнить следующие действия:
Ответ:
 (1) в Visual Studio .NET выбрать команду File\New\Project 
 (2) в диалоговом окне New Project щелкнуть на узле Visual C++ Projects в левой части окна и выбрать шаблон проекта Win32 
 (3) присвоить проекту имя и выбрать место расположения создаваемого проекта 
 (4) нажать на кнопку OK для запуска мастера приложений Win32 
 (5) открыть вкладку Application Settings в левой части мастера приложений Win32 
 (6) выбрать DLL в качестве типа приложения 
 (7) нажать на кнопку Finish 
Упражнение 4:
Номер 1
Примером изменения свойств проекта Win32 в Visual Studio .NET являются следующие действия:
Ответ:
 (1) выбор команды Project\Properties 
 (2) выбор в левой части окна свойств узел Precompiled Header в узле C/C++ 
 (3) выбор шаблона проекта Win32, создание из проекта библиотеку DLL и удаление параметра заранее скомпилированного заголовка 
 (4) выбор в ниспадающем списке Create\Use Precompiled Header - Not Using Precompiled Headers 
 (5) нажатие на кнопку OK в окне свойств 
 (6) выделение в окне Solution Explorer заголовока stdafx
и файлов реализации, щелчок правой кнопкой мыши и выбор Remove 
 (7) щелчок правой кнопкой мыши на имени проекта в Solution Explorer и выбор команды Add\Add New Item 
 (8) в диалоговом окне Add New Item выделение DEF File и присвоение файлу имени в соответствии с именем проекта 
 (9) нажатие на кнопку Open в диалоговом окне Add New Item для добавления в проект нового файла DEF 
Номер 2
Для описания назначения библиотеки DLL в файл DEF надо добавить следующий блок:
Ответ:
 (1) EXPORTS
 
 (2) DESCRIPTION
 
 (3) LIBRARY
 
Номер 3
Имена функций в файле DEF следуют после объявления блока:
Ответ:
 (1) DESCRIPTION
 
 (2) LIBRARY
 
 (3) EXPORTS
 
Упражнение 5:
Номер 1
Файл HelloWorld.cpp
можно настроить на поддержку функций, необходимых для обеспечения работы расширения ISAPI, выполнив следющие действия:
Ответ:
 (1) в Visual Studio .NET открыть файл HelloWorld.cpp
для редактирования посредством двойного щелчка на имени файла в окне Solution Explorer 
 (2) удалить функцию DLLMain
 
 (3) в верхней части файла с кодом добавить препроцессорную директиву включения для файла заголовка httpext.h
и <string>
 
 (4) добавить функцию GetExtensionVersion
 
 (5) добавить функцию HttpExtensionProc
 
Номер 2
Какая функция использует указатель на структуру HSE_VERSION_INFO
в качестве параметра и возвращает значение BOOL в зависимости от того, использует ли IIS расширение ISAPI:
Ответ:
 (1) GetExtensionVersion
 
 (2) GetExtension
 
 (3) HttpExtensionProc
 
 (4) HttpExtension
 
Номер 3
Какая функция в качестве параметра использует блок контроля расширения:
Ответ:
 (1) HttpExtension
 
 (2) HttpExtensionProc
 
 (3) GetExtensionVersion
 
 (4) GetExtension
 
Упражнение 6:
Номер 1
Блок контроля расширения (Extension Control Block, ECB) содержит следующие компоненты:
Ответ:
 (1) данные о запросе HTTP 
 (2) вспомогательные функции для анализа запроса HTTP 
 (3) вспомогательные функции для управления ответом HTTP 
 (4) данные веб-экземпляра IIS, через которое поступил запрос 
Номер 2
Настроить IIS на разрешение запросов расширения ISAPI HelloWorld можно, выполнив следующие действия:
Ответ:
 (1) в окне администрирования расширения веб-служб щелкнуть на ссылке Add A New Web Service Extension 
 (2) в текстовом поле Extension Name ввести имя, которое будет отображаться в окне администрирования расширения веб-служб 
 (3) нажать на кнопку Add, чтобы указать путь к файлу расширения ISAPI 
 (4) в диалоговом окне Add File вручную вводится путь к файлу, либо указать его расположение в окне Open File после нажатия на кнопку Browse 
 (5) установить путь к файлу расширения ISAPI, затем нажать на кнопку OK в диалоговом окне Add File 
 (6) отметить опцию Set Extension Status To Allowed, после чего нажать на кнопку OK 
Номер 3
Какой параметр разрешает выполнение любого запроса относительно любого расширения ISAPI:
Ответ:
 (1) All ISAPI Extensions
 
 (2) All Unknown ISAPI
 
 (3) All Unknown ISAPI Extensions
 
 (4) All Unknown Extensions
 
Упражнение 7:
Номер 1
Первой серверной переменной, для которой получается значение, является переменная:
Ответ:
 (1) ALL_HTTP
 
 (2) VAR_HTTP
 
 (3) HTTP_VAL
 
 (4) ALL_VAL
 
Номер 2
Какая переменная представляет собой все заголовки HTTP, переданные в запросе HTTP:
Ответ:
 (1) HTTP_VAL
 
 (2) ALL_VAL
 
 (3) ALL_HTTP
 
 (4) VAR_HTTP
 
Номер 3
В данном случае:BOOL WINAPI GetServerVariable(
HCONN hConn,
LPSTR lpszVariableName,
LPVOID lpvBuffer,
LPDWORD lpdwSizeofBuffer
); прототип GetServerVariable
требует передачи следующих параметров:
Ответ:
 (1) lpvBuffer
 
 (2) hConn
 
 (3) lpdwSizeofBuffer
 
 (4) lpszVariableName
 
 (5) SizeofBuffer
 
 (6) Buffer
 
Упражнение 8:
Номер 1
Какая переменная сервера, запрашиваемая функцией GetServerVariable
возвращает путь метабазы веб-приложения:
Ответ:
 (1) CERT_ISSUER
 
 (2) PATH_INFO
 
 (3) PATH_TRANSLATED
 
 (4) APPL_MD_PATH
 
 (5) CONTENT_LENGTH
 
 (6) CERT_SERVER_ISSUER
 
Номер 2
Какая переменная сервера, запрашиваемая функцией GetServerVariable
возвращает уникальный идентификатор сертификата клиента:
Ответ:
 (1) INSTANCE_ID
 
 (2) CERT_COOKIE
 
 (3) HTTPS
 
 (4) CERT_SUBJECT
 
 (5) QUERY_STRING
 
 (6) CERT_KEYSIZE
 
Номер 3
Какая переменная сервера, запрашиваемая функцией GetServerVariable
возвращает подробное имя издателя сертификата сервера:
Ответ:
 (1) SCRIPT_NAME
 
 (2) HTTPS_SERVER_SUBJECT
 
 (3) REMOTE_USER
 
 (4) SERVER_SOFTWARE
 
 (5) HTTPS_SERVER_ISSUER
 
 (6) PATH_TRANSLATED
 
Упражнение 9:
Номер 1
В данном случае, физическое расположение расширения ISAPI SEUX.DLL - это:
Ответ:
 (1) C:\inetpub\wwwroot
 
 (2) C:\inetpub
 
 (3) C:\ISAPI\папка1\папка2\SEUX.dll
 
 (4) C:\inetpub\SEUX
 
Номер 2
В данном случае, корень веб- экземпляра - это:
Ответ:
 (1) C:\inetpub\wwwroot
 
 (2) C:\ISAPI\папка1\папка2\SEUX.dll
 
 (3) C:\ISAPI
 
Номер 3
Расширение ISAPI SEUX.dll
может быть запрошено с amd1700v2
с помощью следующих данных браузера, расположенного на отдельном компьютере:
Ответ:
 (1) пользователь, осуществивший вход на веб-сайт под именем normaluser
 
 (2) пользователь, осуществивший вход на веб-сайт с использованием пароля normaluser
 
 (3) http://amd1700v2/simpleisapi/folder1/folder2/SEUX.dll/PATH_INFO?parm1=value1&parm2=value
в качестве URL в браузере 
Упражнение 10:
Номер 1
Какая функция инициализирует поиск в указанной позиции и возвращает имя и соответствующее ему значение для данного заголовка, а также позицию, в которой прерван поиск заголовков:
Ответ:
 (1) GetServerVariable
 
 (2) GetHeaderValuePair
 
 (3) HttpExtensionProc
 
 (4) FindAndReplace
 
Номер 2
Какая функция представляет собой утилиту для замещения всех вхождений строки:
Ответ:
 (1) GetHeaderValuePair
 
 (2) HttpExtensionProc
 
 (3) FindAndReplace
 
 (4) GetServerVariable
 
Номер 3
Заголовок типа содержимого передается запрашивающему клиенту с помощью функции ECB:
Ответ:
 (1) GetServerVariable
 
 (2) ServerSupportFunction
 
 (3) GetHeaderValuePair
 
 (4) SendResponse
 
Упражнение 11:
Номер 1
После отправки заголовка возврата отправляется содержимое с помощью функции:
Ответ:
 (1) ServerSupport
 
 (2) ServerSupportFunction
 
 (3) WriteClient
 
 (4) WebClient
 
Номер 2
Значение какого параметра WriteClient
определяет способ передачи данных клиенту:
Ответ:
 (1) lpdwBytes
 
 (2) ConnID
 
 (3) Buffer
 
 (4) dwSync
 
Номер 3
Асинхронное использование функции WriteClient
требует объявления функции обратной связи, а также отправки функцией ServerSupportFunction
значения:
Ответ:
 (1) HSE_REQ_IO
 
 (2) HSE_REQ_IO_COMPLETION
 
 (3) HSE_REQ_COMPLETION
 
 (4) HSE_IO_COMPLETION
 
Упражнение 12:
Номер 1
Для ISAPI предоставляются следующие классы MFC:
Ответ:
 (1) ChttpServerConnect
 
 (2) CHttpArgList
 
 (3) CHttpFilterContext
 
 (4) ChttpServerContext
 
 (5) CHtmlStream
 
 (6) CHttpServer
 
 (7) CHttpFilter
 
Номер 2
Функция с именем Default
является главной точкой входа для ISAPI DLL:
Ответ:
 (1) Default(CHttpServerContext* pCtxt);
 
 (2) void Default(* pCtxt);
 
 (3) void (CHttpServerContext* );
 
 (4) void Default(CHttpServerContext* pCtxt);
 
Номер 3
В какой области содержатся опции, позволяющие расширению ISAPI подключаться к MFC статически или динамически:
Ответ:
 (1) Object Settings 
 (2) Overview 
 (3) Notifications 
 (4) ISAPI Connect