Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Команда IIS, Рейган Темплин
Совместимость
| Версия | Примечания |
|---|---|
| IIS 7.0 и более поздних версий | Функции, описанные в этой статье, были представлены в IIS 7.0. |
| IIS 6.0 и более ранних версий | Функции, описанные в этой статье, не поддерживаются до IIS 7.0. |
Введение
Службы IIS 7 и более поздние версии предоставляют архитектуру обработки запросов, которая включает в себя:
- Служба активации процесса Windows (WAS), которая позволяет сайтам использовать протоколы, отличные от ПРОТОКОЛА HTTP и HTTPS.
- Подсистема веб-сервера, которую можно настроить, добавив или удалив модули.
- Интегрированные конвейеры обработки запросов из IIS и ASP.NET.
Компоненты в IIS
IIS включает в себя несколько компонентов, которые выполняют важные функции для ролей приложения и веб-сервера в Windows Server® 2008 (IIS 7.0) и Windows Server 2008 R2 (IIS 7.5). У каждого компонента есть обязанности, такие как прослушивание запросов, сделанных на сервер, управление процессами и чтение файлов конфигурации. Эти компоненты включают прослушиватели протоколов, такие как HTTP.sys, и службы, такие как Служба веб-публикации (WWW) и Служба активации процессов Windows (WAS).
Прослушиватели протокола
Прослушиватели протокола получают протокольные запросы, отправляют их в IIS для обработки, а затем возвращают ответы запросчикам. Например, когда браузер клиента запрашивает веб-страницу из Интернета, прослушиватель HTTP, HTTP.sys, выбирает запрос и отправляет его в IIS для обработки. После обработки запроса IIS HTTP.sys возвращает ответ на клиентский браузер.
По умолчанию IIS предоставляет HTTP.sys в качестве слушателя протокола, который прослушивает HTTP и HTTPS запросы. HTTP.sys появился в IIS 6.0 в качестве прослушивателя протокола для HTTP-запросов. HTTP.sys остается прослушивателем HTTP в IIS 7 и более поздних версиях, но включает поддержку протокола SSL.
Для поддержки служб и приложений, использующих протоколы, отличные от ПРОТОКОЛА HTTP и HTTPS, можно использовать такие технологии, как Windows Communication Foundation (WCF). WCF имеет адаптеры прослушивателя, обеспечивающие функциональные возможности прослушивателя протокола и адаптера прослушивателя. Адаптеры прослушивателя рассматриваются далее в этом документе. Дополнительные сведения о WCF см. в Windows Communication Foundation в MSDN.
Стек протокола передачи гипертекста (HTTP.sys)
Прослушиватель HTTP является частью сетевой подсистемы операционных систем Windows и реализуется в качестве драйвера устройства в режиме ядра, называемого стеком HTTP (HTTP.sys). HTTP.sys прослушивает HTTP-запросы из сети, передает запросы в службы IIS для обработки, а затем возвращает обработанные ответы клиентским браузерам.
В IIS 6.0 HTTP.sys заменил API сокетов Windows (Winsock), который был компонентом пользовательского режима, используемым предыдущими версиями IIS для получения HTTP-запросов и отправки HTTP-ответов. IIS 7 и более поздних версий продолжают полагаться на HTTP.sys для HTTP-запросов.
HTTP.sys предоставляет следующие преимущества:
- Кэширование в режиме ядра. Запросы кэшированных ответов обслуживаются без переключения в режим пользователя.
- Очередь запросов в режиме работы ядра. Запросы приводят к снижению накладных расходов на переключение контекста, так как ядро перенаправляет запросы непосредственно в правильный рабочий процессор. Если рабочий процесс недоступен для принятия запроса, очередь запросов в режиме ядра хранит запрос до тех пор, пока рабочий процесс не выберет его.
- Запрос предварительной обработки и фильтрации безопасности.
Служба публикации в Всемирной паутине (служба WWW)
В IIS 7 и более поздних версиях функции, которые ранее обрабатывались службой веб-публикации (WWW-служба), теперь разделены между двумя службами: www service и новой службой, службой активации процесса Windows (WAS). Эти две службы выполняются под учетной записью LocalSystem в одном процессе Svchost.exe и совместно используют те же двоичные файлы.
Замечание
Вы также можете увидеть службу WWW, называемую W3SVC в документации.
Как работает служба WWW в IIS 6.0
В IIS 6.0 служба WWW управляет следующими основными областями в IIS:
- Администрирование и настройка HTTP
- Управление процессами
- Отслеживание производительности
Администрирование и настройка HTTP
Служба WWW считывает сведения о конфигурации из метабазы IIS и использует эту информацию для настройки и обновления прослушивателя HTTP, HTTP.sys. Кроме того, служба WWW запускается, останавливается, отслеживает и управляет рабочими процессами, обрабатывающими HTTP-запросы.
Мониторинг производительности
Служба WWW отслеживает производительность и предоставляет счетчики производительности для веб-сайтов и кэша IIS.
Управление процессами
Служба WWW управляет пулами приложений и рабочими процессами, такими как запуск, остановка и перезапуск рабочих процессов. Кроме того, служба WWW отслеживает работоспособность рабочих процессов и осуществляет быстрое обнаружение сбоев, чтобы остановить запуск новых процессов, если несколько рабочих процессов завершаются сбоем в течение настраиваемого промежутка времени.
Как работает служба WWW в IIS
В службе IIS служба WWW больше не управляет рабочими процессами. Служба WWW является адаптером обработки запросов для HTTP-слушателя, HTTP.sys. В качестве адаптера прослушивателя служба WWW отвечает в первую очередь за настройку HTTP.sys, обновление HTTP.sys при изменении конфигурации и уведомление WAS при вводе запроса в очередь запросов.
Кроме того, служба WWW продолжает собирать счетчики для веб-сайтов. Так как счетчики производительности остаются частью службы WWW, они зависят от HTTP и не применяются к WAS.
Служба активации процессов Windows (WAS)
В IIS 7 и более поздних версиях служба активации процессов Windows управляет конфигурацией пула приложений и рабочими процессами вместо службы WWW. Это позволяет использовать ту же модель конфигурации и процесса для сайтов HTTP и не HTTP.
Кроме того, можно запустить WAS без службы WWW, если вам не нужна функция HTTP. Например, вы можете управлять веб-службой с помощью адаптера прослушивателя WCF, например NetTcpActivator, без запуска службы WWW, если вам не нужно прослушивать HTTP-запросы в HTTP.sys. Сведения об адаптерах прослушивателя WCF и о том, как размещать приложения WCF в IIS 7 и более поздних версиях с помощью WAS, см. в статье "Размещение в WCF" на сайте MSDN.
Управление конфигурацией в WAS
При запуске WAS считывает определенные сведения из файла ApplicationHost.config и передает эти сведения адаптерам прослушивателя на сервере. Адаптеры прослушивателя — это компоненты, которые устанавливают связь между прослушивателями WAS и протоколами, например HTTP.sys. Как только адаптеры прослушивателей получают сведения о конфигурации, они настраивают соответствующие прослушиватели протоколов и подготавливают их для приема запросов.
В случае WCF адаптер прослушивателя включает функции прослушивателя протокола. Таким образом, адаптер прослушивателя WCF, например NetTcpActivator, настраивается на основе сведений из WAS. После настройки NetTcpActivator он прослушивает запросы, использующие протокол net.tcp. Дополнительные сведения об адаптерах прослушивателя WCF см. в разделе " Архитектура активации WAS " в MSDN.
В следующем списке описывается тип информации, которую WAS считывает из конфигурации:
- Сведения о глобальной конфигурации
- Сведения о конфигурации протокола для протоколов HTTP и не HTTP
- Конфигурация пула приложений, например сведения об учетной записи процесса
- Конфигурация сайта, например привязки и приложения
- Конфигурация приложения, например включенные протоколы и пулы приложений, к которым относятся приложения
Если файл ApplicationHost.config изменяется, WAS получает уведомление и обновляет адаптеры прослушивателя новой информацией.
Управление процессами
WAS управляет пулами приложений и рабочими процессами для HTTP и не HTTP запросов. Когда прослушиватель протокола фиксирует запрос клиента, WAS определяет, запущен ли процесс-работник или нет. Если пул приложений уже имеет рабочий процесс, который обслуживает запросы, адаптер прослушивателя передает запрос в рабочий процесс для обработки. Если в пуле приложений нет рабочих процессов, ТО WAS запустит рабочий процесс, чтобы адаптер прослушивателя смог передать запрос на обработку.
Замечание
Так как WAS управляет процессами для протоколов HTTP и не HTTP, вы можете запускать приложения с разными протоколами в одном пуле приложений. Например, можно разработать приложение, например службу XML, и разместить его по протоколу HTTP и net.tcp.
Модули в IIS
IIS предоставляет новую архитектуру, отличную от предыдущих версий IIS. Вместо сохранения большинства функций в самом сервере службы IIS включают подсистему веб-сервера, в которой можно добавлять или удалять компоненты, называемые модулями, в зависимости от потребностей.
Модули — это отдельные функции, которые сервер использует для обработки запросов. ** Например, службы IIS используют модули аутентификации для проверки учетных данных клиента и модули кэширования для управления кэшем.
Новая архитектура обеспечивает следующие преимущества по сравнению с предыдущими версиями IIS:
- Вы можете управлять модулями, которые вы хотите использовать на сервере.
- Сервер можно настроить на определенную роль в вашей среде.
- Пользовательские модули можно использовать для замены существующих модулей или для внедрения новых функций.
Новая архитектура также улучшает безопасность и упрощает администрирование. Удаляя ненужные модули, вы сокращаете объем памяти и поверхности атаки сервера, что является объемом памяти, используемой рабочими процессами сервера на компьютере. Кроме того, необходимо устранить необходимость управления функциями, ненужными для сайтов и приложений.
Собственные модули
В следующих разделах описываются собственные модули, доступные с полной установкой IIS 7 и более поздних версий. Их можно удалить или заменить пользовательскими модулями в зависимости от ваших потребностей.
Модули HTTP
Несколько модулей в IIS 7 и более поздних версиях выполняют задачи, относящиеся к протоколу HTTP, в конвейере обработки запросов. Модули HTTP включают модули для реагирования на информацию и запросы, отправленные в заголовках клиентов, для возврата ошибок HTTP, перенаправления запросов и т. д.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| CustomErrorModule | Отправляет сообщения об ошибках HTTP по умолчанию и настроенные, когда в ответе установлен код состояния ошибки. | Inetsrv\Custerr.dll |
| HttpRedirectionModule | Поддерживает настраиваемое перенаправление для HTTP-запросов. | Inetsrv\Redirect.dll |
| ProtocolSupportModule | Выполняет действия, связанные с протоколом, такие как настройка заголовков ответов и перенаправление заголовков на основе конфигурации. | Inetsrv\Protsup.dll |
| МодульФильтрацииЗапросов (RequestFilteringModule) | Добавлен в IIS 7.5. Фильтрует запросы, настроенные для управления поведением протокола и содержимого. | Inetsrv\modrqflt.dll |
| WebDAVModule | Добавлен в IIS 7.5. Обеспечивает более безопасную публикацию содержимого с помощью ПРОТОКОЛА HTTP по протоколу SSL. | Inetsrv\WebDAV.dll |
Модули безопасности
Несколько модулей в IIS выполняют задачи, связанные с безопасностью в конвейере обработки запросов. Кроме того, существуют отдельные модули для каждой схемы проверки подлинности, которые позволяют выбирать модули для типов проверки подлинности, которые требуется выполнить на сервере. Существуют также модули, выполняющие авторизацию URL-адреса, и модуль, который фильтрует запросы.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| МодульАнонимнойАутентификации | Выполняет анонимную проверку подлинности при отсутствии другого метода проверки подлинности. | Inetsrv\Authanon.dll |
| BasicAuthenticationModule | Выполняет обычную проверку подлинности. | Inetsrv\Authbas.dll |
| Модуль Аутентификации с Картированием Сертификатов | Выполняет аутентификацию с использованием сопоставления сертификатов через Active Directory. | Inetsrv\Authcert.dll |
| Модуль аутентификации Digest (DigestAuthenticationModule) | Выполняет проверку подлинности по методу Digest. | Inetsrv\Authmd5.dll |
| IISCertificateMappingAuthenticationModule | Выполняет аутентификацию по сопоставлению сертификатов с помощью конфигурации сертификата IIS. | Inetsrv\Authmap.dll |
| МодульФильтрацииЗапросов (RequestFilteringModule) | Выполняет задачи URLScan, такие как настройка разрешенных команд и расширений имени файла, ограничения настройки и сканирование плохих последовательностей символов. | Inetsrv\Modrqflt.dll |
| UrlAuthorizationModule | Выполняет авторизацию URL-адреса. | Inetsrv\Urlauthz.dll |
| WindowsAuthenticationModule | Выполняет встроенную проверку подлинности NTLM. | Inetsrv\Authsspi.dll |
| Модуль ограничения по IP (IpRestrictionModule) | Ограничивает IPv4-адреса, перечисленные в списке ipSecurity в конфигурации. | Inetsrv\iprestr.dll |
Модули содержимого
Несколько модулей в IIS выполняют задачи, связанные с содержимым в конвейере обработки запросов. Модули содержимого включают модули для обработки запросов статических файлов, чтобы вернуть страницу по умолчанию, если клиент не указывает ресурс в запросе, чтобы перечислить содержимое каталога и многое другое.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| CgiModule | Выполняет процессы Common Gateway Interface (CGI) для создания результатных данных ответа. | Inetsrv\Cgi.dll |
| МодульПоУмолчаниюДляДокументов | Предпринимает попытки вернуть документ по умолчанию для запросов, направленных в родительский каталог. | Inetsrv\Defdoc.dll |
| DirectoryListingModule | Показывает содержимое каталога. | Inetsrv\dirlist.dll |
| IsapiModule | Управляет библиотеками DLL расширений ISAPI. | Inetsrv\Isapi.dll |
| IsapiFilterModule | Поддерживает библиотеки DLL фильтров ISAPI. | Inetsrv\Filter.dll |
| ServerSideIncludeModule | Процессы на стороне сервера включают код. | Inetsrv\Iis_ssi.dll |
| StaticFileModule | Обслуживает статические файлы. | Inetsrv\Static.dll |
| FastCgiModule | Поддерживает FastCGI, который обеспечивает высокопроизводительную альтернативу CGI. | Inetsrv\iisfcgi.dll |
Модули сжатия
Два модуля в IIS выполняют сжатие в конвейере обработки запросов.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| DynamicCompressionModule | Сжимает ответы и применяет код передачи сжатия Gzip к ответам. | Inetsrv\Compdyn.dll |
| Модуль статического сжатия | Выполняет предварительное сжатие статического содержимого. | Inetsrv\Compstat.dll |
Кэширование модулей
Несколько модулей в IIS выполняют задачи, связанные с кэшированием в конвейере обработки запросов. Кэширование повышает производительность веб-сайтов и веб-приложений путем хранения обработанных сведений, таких как веб-страницы, в памяти на сервере, а затем повторного использования этой информации в последующих запросах для того же ресурса.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| МодульКэшированияФайлов | Предоставляет кэширование на уровне пользовательского режима для файлов и файловых дескрипторов. | Inetsrv\Cachfile.dll |
| HTTPCacheModule | Предоставляет режим ядра и кэширование пользовательского режима в HTTP.sys. | Inetsrv\Cachhttp.dll |
| ТокенКэшМодуль | Предоставляет кэширование имен пользователей и пар маркеров в режиме пользователя для модулей, которые создают субъекты-пользователи Windows. | Inetsrv\Cachtokn.dll |
| UriCacheModule | Предоставляет кэширование URL-адресов в пользовательском режиме. | Inetsrv\Cachuri.dll |
Модули ведения журнала и диагностики
Несколько модулей в IIS выполняют задачи, связанные с ведением журнала и диагностикой в конвейере обработки запросов. Модули ведения журнала поддерживают загрузку пользовательских модулей и передачу сведений в HTTP.sys. Модули диагностики следуют и сообщают о событиях во время обработки запросов.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| CustomLoggingModule | Загружает пользовательские модули ведения журнала. | Inetsrv\Logcust.dll |
| МодульОтслеживанияНеудачныхЗапросов | Поддерживает функцию трассировки неудачных запросов. | Inetsrv\Iisfreb.dll |
| HttpLoggingModule | Передает сведения и состояние обработки в HTTP.sys для ведения журнала. | Inetsrv\Loghttp.dll |
| МодульМониторингаЗапросов | Отслеживает запросы, которые в настоящее время выполняются в рабочих процессах, и сообщает информацию с помощью интерфейса программирования приложений для управления и состояния среды выполнения (RSCA). | Inetsrv\Iisreqs.dll |
| ТрассировкаМодуль | Сообщает о событиях в Трассировку событий Майкрософт для Windows (ETW). | Inetsrv\Iisetw.dll |
Модули управляемой поддержки
Несколько модулей в IIS поддерживают управляемую интеграцию в конвейере обработки запросов IIS.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| УправляемыйДвижок | Обеспечивает интеграцию модулей управляемого кода в конвейере обработки запросов IIS. | Microsoft.NET\Framework\v2.0.50727\webengine.dll |
| МодульПроверкиКонфигурации | Проверяет проблемы конфигурации, например, когда приложение работает в интегрированном режиме, но имеет обработчики или модули, объявленные в разделе system.web. | Inetsrv\validcfg.dll |
Управляемые модули
Помимо собственных модулей IIS позволяет использовать модули управляемого кода для расширения функциональных возможностей IIS. Некоторые управляемые модули, такие как UrlAuthorization, имеют собственный модуль, который предоставляет собственную альтернативу управляемому модулю.
Замечание
Управляемые модули зависят от модуля ManagedEngine.
В следующей таблице перечислены управляемые модули, доступные с полной установкой IIS 7 и более поздних версий. Дополнительные сведения об управляемых модулях см. в пакете SDK для .NET Framework 2.0 на сайте MSDN.
| Имя модуля | Описание | Ресурс |
|---|---|---|
| Анонимная идентификация | Управляет анонимными идентификаторами, которые используются функциями, поддерживающими анонимную идентификацию, например профиль ASP.NET. | System.Web.Security.AnonymousIdentificationModule |
| АутентификацияПоУмолчанию | Гарантирует, что объект проверки подлинности присутствует в контексте. | System.Web.Security.DefaultAuthenticationModule |
| Авторизация файла | Проверяет, имеет ли пользователь разрешение на доступ к запрошенным файлам. | System.Web.Security.FileAuthorizationModule |
| Аутентификация через формы (FormsAuthentication) | Поддерживает аутентификацию с использованием аутентификации формы. | System.Web.Security.FormsAuthenticationModule |
| OutputCache | Поддерживает кэширование выходных данных. | System.Web.Caching.OutputCacheModule |
| Профиль | Управляет профилями пользователей с помощью ASP.NET профиля, в котором хранятся и извлекаются параметры пользователя в источнике данных, например в базе данных. | System.Web.Profile.ProfileModule |
| Менеджер ролей | Управляет экземпляром RolePrincipal для текущего пользователя. | System.Web.Security.RoleManagerModule |
| Session | Поддерживает сохранение состояния сеанса, которое позволяет хранить данные, относящиеся к одному клиенту в приложении на сервере. | System.Web.SessionState.SessionStateModule |
| UrlAuthorization | Определяет, имеет ли текущий пользователь право на доступ к запрашиваемому URL-адресу, в зависимости от имени пользователя или списка ролей, членом которых является пользователь. | System.Web.Security.UrlAuthorizationModule |
| МодульUrlMappings | Поддерживает сопоставление реального URL-адреса с более понятным URL-адресом. | System.Web.UrlMappingsModule |
| WindowsAuthentication | Задает удостоверение пользователя для приложения ASP.NET при включении проверки подлинности Windows. | System.Web.Security.WindowsAuthenticationModule |
Обработка запросов в IIS
В IIS конвейеры запросов IIS и ASP.NET объединяются для обработки запросов с помощью интегрированного подхода. Новая архитектура обработки запросов состоит из упорядоченного списка собственных и управляемых модулей, выполняющих определенные задачи в ответ на запросы.
Эта конструкция обеспечивает несколько преимуществ по сравнению с предыдущими версиями IIS. Во-первых, все типы файлов могут использовать функции, которые изначально были доступны только для управляемого кода. Например, теперь можно использовать проверку подлинности ASP.NET Forms и авторизации единого указателя ресурсов (URL-адрес) для статических файлов, файлов Active Server Pages (ASP) и всех других типов файлов в сайтах и приложениях.
Во-вторых, эта конструкция устраняет дублирование нескольких функций в IIS и ASP.NET. Например, когда клиент запрашивает управляемый файл, сервер вызывает соответствующий модуль проверки подлинности в интегрированном конвейере для проверки подлинности клиента. В предыдущих версиях IIS этот же запрос будет проходить через процесс проверки подлинности как в конвейере IIS, так и в конвейере ASP.NET.
В-третьих, вы можете управлять всеми модулями в одном расположении, а не управлять некоторыми функциями в IIS и некоторых из них в конфигурации ASP.NET. Это упрощает администрирование сайтов и приложений на сервере.
Пулы приложений в IIS
Пулы приложений разделяют приложения по границам процессов, чтобы предотвратить влияние одного приложения на другое приложение на сервере. В IIS 7 и более поздних версиях пулы приложений продолжают использовать режим изоляции рабочих процессов IIS 6.0. Кроме того, теперь можно указать параметр, определяющий способ обработки запросов, связанных с управляемыми ресурсами: интегрированный режим или классический режим.
Замечание
В IIS 6.0 режим изоляции рабочего процесса и режим изоляции IIS 5.0 устанавливаются на уровне сервера. Это делает невозможным выполнение обоих режимов изоляции на одном сервере. Однако в IIS 7 и более поздних версиях режим интеграции и классический режим устанавливаются на уровне пула приложений, что позволяет одновременно запускать приложения в пулах приложений с различными режимами обработки на одном сервере.
Режим интегрированного пула приложений
Если пул приложений находится в интегрированном режиме, вы можете воспользоваться интегрированной архитектурой обработки запросов служб IIS и ASP.NET. Когда рабочий процесс в пуле приложений получает запрос, запрос передается через упорядоченный список событий. Каждое событие вызывает необходимые собственные и управляемые модули для обработки частей запроса и создания ответа.
Существует несколько преимуществ для запуска пулов приложений в интегрированном режиме. Сначала модели обработки запросов IIS и ASP.NET интегрируются в единую модель процесса. Эта модель устраняет шаги, которые ранее дублировались в IIS и ASP.NET, например проверку подлинности. Кроме того, интегрированный режим обеспечивает доступность управляемых функций для всех типов контента.
Классический режим пула приложений
Если пул приложений находится в классическом режиме, IIS 7 и более поздних версий обрабатывают запросы так же, как и в режиме изоляции рабочих процессов IIS 6.0. ASP.NET запросы сначала проходят собственные шаги обработки в IIS, а затем направляются в Aspnet_isapi.dll для обработки управляемого кода в управляемой среде выполнения. Наконец, запрос возвращается через IIS, чтобы отправить ответ.
Это разделение моделей обработки запросов IIS и ASP.NET приводит к дублированию некоторых этапов, таких как проверка подлинности и авторизация. Кроме того, функции управляемого кода, такие как проверка подлинности форм, доступны только для ASP.NET приложений или приложений, для которых у вас есть скрипт, сопоставленный со всеми запросами, которые будут обрабатываться aspnet_isapi.dll.
Перед обновлением рабочей среды до IIS 7 и более поздних версий и назначением приложений пулам приложений в интегрированном режиме обязательно протестируйте существующие приложения для обеспечения совместимости в интегрированном режиме. В классический пул приложений следует добавлять приложение только в том случае, если оно не работает в интегрированном режиме. Например, приложение может полагаться на маркер проверки подлинности, передаваемый из IIS в управляемую среду выполнения, и из-за новой архитектуры в IIS 7 и более поздних версиях процесс прерывает приложение.
Обработка HTTP-запросов в IIS
IIS 7 и более поздних версий имеют аналогичный поток обработки HTTP-запросов, как IIS 6.0. Схемы в этом разделе содержат обзор HTTP-запроса в процессе.
В следующем списке описывается поток обработки запросов, показанный на рис. 1.
- Когда клиентский браузер инициирует HTTP-запрос ресурса на веб-сервере, HTTP.sys перехватывает запрос.
- HTTP.sys взаимодействует с WAS, чтобы получить информацию из хранилища конфигурации.
- WAS запрашивает сведения о конфигурации из хранилища конфигурации, applicationHost.config.
- Служба WWW получает сведения о конфигурации, такие как пул приложений и конфигурация сайта.
- Служба WWW использует сведения о конфигурации для настройки HTTP.sys.
- WAS запускает рабочий процесс для пула приложений, к которому был выполнен запрос.
- Рабочий процесс обрабатывает запрос и возвращает ответ HTTP.sys.
- Клиент получает ответ.
Рис. 1. Обзор HTTP-запроса
В рабочем процессе HTTP-запрос проходит несколько упорядоченных шагов, которые называются событиями в основном веб-сервере. В каждом событии собственный модуль обрабатывает часть запроса, например проверку подлинности пользователя или добавление сведений в журнал событий. Если для запроса требуется управляемый модуль, собственный модуль ManagedEngine создает домен приложения, где управляемый модуль может выполнять необходимую обработку, например проверку подлинности пользователя с помощью проверки подлинности Forms. Когда запрос проходит через все события в веб-сервере Core, ответ возвращается в HTTP.sys. На рисунке 2 ниже показан HTTP-запрос, входящий в рабочий процесс.
Рис. 2. Подробные сведения о HTTP-запросе внутри рабочего процесса