Главная / Интернет-технологии /
Программирование в 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