Введение в архитектуры IIS
Группа 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-запросов. 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 Service), теперь разделены между двумя службами: службой WWW и новой службой активации 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 (WAS) управляет конфигурацией пула приложений и рабочими процессами вместо службы 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-адреса, и модуль, который фильтрует запросы.
Имя модуля | Описание | Ресурс |
---|---|---|
AnonymousAuthenticationModule | Выполняет анонимную проверку подлинности при отсутствии других методов проверки подлинности. | Inetsrv\Authanon.dll |
BasicAuthenticationModule | Выполняет обычную проверку подлинности. | Inetsrv\Authbas.dll |
CertificateMappingAuthenticationModule | Выполняет проверку подлинности на основе сопоставления сертификатов с помощью Active Directory. | Inetsrv\Authcert.dll |
DigestAuthenticationModule | Выполняет дайджест-проверку подлинности. | Inetsrv\Authmd5.dll |
IISCertificateMappingAuthenticationModule | Выполняет проверку подлинности сопоставления сертификатов с помощью конфигурации сертификата IIS. | Inetsrv\Authmap.dll |
RequestFilteringModule | Выполняет задачи URLScan, такие как настройка разрешенных команд и расширений имен файлов, установка ограничений и проверка на наличие неправильных последовательностей символов. | Inetsrv\Modrqflt.dll |
UrlAuthorizationModule | Выполняет авторизацию URL-адреса. | Inetsrv\Urlauthz.dll |
WindowsAuthenticationModule | Выполняет встроенную проверку подлинности NTLM. | Inetsrv\Authsspi.dll |
IpRestrictionModule | Ограничивает IPv4-адреса, перечисленные в списке ipSecurity в конфигурации. | Inetsrv\iprestr.dll |
Модули содержимого
Несколько модулей в IIS выполняют задачи, связанные с содержимым в конвейере обработки запросов. Модули содержимого включают модули для обработки запросов статических файлов, для возврата страницы по умолчанию, когда клиент не указывает ресурс в запросе, для перечисления содержимого каталога и многого другого.
Имя модуля | Описание | Ресурс |
---|---|---|
CgiModule | Выполняет процессы CGI для создания выходных данных ответа. | Inetsrv\Cgi.dll |
DefaultDocumentModule | Пытается вернуть документ по умолчанию для запросов, выполненных в родительский каталог. | 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 |
StaticCompressionModule | Выполняет предварительное сжатие статического содержимого. | Inetsrv\Compstat.dll |
Кэширование модулей
Несколько модулей в IIS выполняют задачи, связанные с кэшированием в конвейере обработки запросов. Кэширование повышает производительность веб-сайтов и веб-приложений за счет хранения обработанных сведений, таких как веб-страницы, в памяти сервера, а затем повторного использования этой информации в последующих запросах для того же ресурса.
Имя модуля | Описание | Ресурс |
---|---|---|
FileCacheModule | Обеспечивает кэширование в пользовательском режиме для файлов и дескрипторов файлов. | Inetsrv\Cachfile.dll |
HTTPCacheModule | Предоставляет кэширование в режиме ядра и пользовательском режиме в HTTP.sys. | Inetsrv\Cachhttp.dll |
TokenCacheModule | Обеспечивает кэширование в пользовательском режиме пар имени пользователя и маркера для модулей, создающих субъекты-пользователи Windows. | Inetsrv\Cachtokn.dll |
UriCacheModule | Обеспечивает кэширование сведений ОБ URL-адресе в пользовательском режиме. | Inetsrv\Cachuri.dll |
Модули ведения журнала и диагностики
Несколько модулей в IIS выполняют задачи, связанные с ведением журнала и диагностикой в конвейере обработки запросов. Модули ведения журнала поддерживают загрузку пользовательских модулей и передачу информации в HTTP.sys. Модули диагностики следуют и сообщают о событиях во время обработки запроса.
Имя модуля | Описание | Ресурс |
---|---|---|
CustomLoggingModule | Загружает пользовательские модули ведения журнала. | Inetsrv\Logcust.dll |
FailedRequestsTracingModule | Поддерживает функцию трассировки неудачных запросов. | Inetsrv\Iisfreb.dll |
HttpLoggingModule | Передает сведения и состояние обработки в HTTP.sys для ведения журнала. | Inetsrv\Loghttp.dll |
RequestMonitorModule | Отслеживает запросы, выполняемые в настоящее время в рабочих процессах, и сообщает сведения о состоянии среды выполнения и интерфейсе управления приложениями (RSCA). | Inetsrv\Iisreqs.dll |
TracingModule | Сообщает о событиях в службу трассировки событий Майкрософт для Windows (ETW). | Inetsrv\Iisetw.dll |
Управляемые модули поддержки
Несколько модулей в IIS поддерживают управляемую интеграцию в конвейере обработки запросов IIS.
Имя модуля | Описание | Ресурс |
---|---|---|
ManagedEngine | Обеспечивает интеграцию модулей управляемого кода в конвейере обработки запросов IIS. | Microsoft.NET\Framework\v2.0.50727\webengine.dll |
ConfigurationValidationModule | Проверяет проблемы конфигурации, например, когда приложение выполняется в режиме интеграции, но в разделе system.web объявлены обработчики или модули. | Inetsrv\validcfg.dll |
Управляемые модули
Помимо собственных модулей службы IIS позволяют использовать модули управляемого кода для расширения функциональных возможностей IIS. Некоторые управляемые модули, например UrlAuthorization, имеют собственный модуль, который предоставляет собственную альтернативу управляемому модулю.
Примечание
Управляемые модули зависят от модуля ManagedEngine.
В следующей таблице перечислены управляемые модули, доступные с полной установкой IIS 7 и более поздних версий. Дополнительные сведения об управляемых модулях см. в пакете SDK для платформа .NET Framework версии 2.0 на сайте MSDN.
Имя модуля | Описание | Ресурс |
---|---|---|
AnonymousIdentification | Управляет анонимными идентификаторами, которые используются функциями, поддерживающими анонимную идентификацию, например ASP.NET профилем. | System.Web.Security.AnonymousIdentificationModule |
DefaultAuthentication | Обеспечивает присутствие в контексте объекта проверки подлинности. | System.Web.Security.DefaultAuthenticationModule |
FileAuthorization | Проверяет, имеет ли пользователь разрешение на доступ к запрошенным файлам. | System.Web.Security.FileAuthorizationModule |
FormsAuthentication | Поддерживает проверку подлинности с помощью форм. | System.Web.Security.FormsAuthenticationModule |
OutputCache | Поддерживает кэширование выходных данных. | System.Web.Caching.OutputCacheModule |
Профиль | Управляет профилями пользователей с помощью ASP.NET профиля, который сохраняет и извлекает параметры пользователя в источнике данных, например в базе данных. | System.Web.Profile.ProfileModule |
RoleManager | Управляет экземпляром RolePrincipal для текущего пользователя. | System.Web.Security.RoleManagerModule |
Сеанс | Поддерживает сохранение состояния сеанса, что позволяет хранить данные, относящиеся к одному клиенту, в приложении на сервере. | System.Web.SessionState.SessionStateModule |
UrlAuthorization | Определяет, разрешен ли текущему пользователю доступ к запрашиваемому URL-адресу на основе имени пользователя или списка ролей, членом которых является пользователь. | System.Web.Security.UrlAuthorizationModule |
UrlMappingsModule | Поддерживает сопоставление реального URL-адреса с более понятным URL-адресом. | System.Web.UrlMappingsModule |
WindowsAuthentication | Задает удостоверение пользователя для приложения ASP.NET, если включена проверка подлинности Windows. | System.Web.Security.WindowsAuthenticationModule |
Обработка запросов в IIS
В IIS конвейеры запросов IIS и ASP.NET объединены для обработки запросов с помощью интегрированного подхода. Новая архитектура обработки запросов состоит из упорядоченного списка собственных и управляемых модулей, которые выполняют определенные задачи в ответ на запросы.
Такая конструкция обеспечивает ряд преимуществ по сравнению с предыдущими версиями IIS. Во-первых, все типы файлов могут использовать функции, которые изначально были доступны только для управляемого кода. Например, теперь можно использовать ASP.NET проверки подлинности с помощью форм и авторизации url-адреса для статических файлов, 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 создает AppDomain, где управляемый модуль может выполнять необходимую обработку, например проверку подлинности пользователя с помощью проверки подлинности на основе форм. Когда запрос проходит через все события в основных веб-серверах, ответ возвращается в HTTP.sys. На рисунке 2 ниже показан HTTP-запрос, входящий в рабочий процесс.
Рис. 2. Подробные сведения о HTTP-запросе внутри рабочего процесса