Открыть сервис

IIS

IIS (Internet Information Services, ранее — Internet Information Server) — это набор серверных служб и веб-сервер с закрытым исходным кодом, разработанный корпорацией Microsoft для операционных систем семейства Windows. IIS предоставляет функциональность для размещения веб-сайтов, веб-приложений, FTP-серверов, SMTP-серверов и других сетевых служб, работающих по протоколам HTTP, HTTPS, FTP, FTPS, SMTP и NNTP. Является вторым по распространённости веб-сервером в мире (после Apache HTTP Server) и доминирует в корпоративном сегменте, использующем инфраструктуру Microsoft.

История

Предыстория и первые версии (1995–2000)

Первая версия IIS (1.0) была выпущена в 1995 году как компонент Windows NT 3.51 Service Pack 3. Она представляла собой простой HTTP-сервер, предназначенный для размещения статических HTML-страниц. IIS 2.0 (1996) вошёл в состав Windows NT 4.0 и добавил поддержку Active Server Pages (ASP) — технологии для создания динамических веб-страниц на языке VBScript или JScript. IIS 3.0 (1997) интегрировал поддержку ASP 2.0 и улучшил производительность.

В 1998 году вышла версия IIS 4.0, которая стала частью Windows NT 4.0 Option Pack. Она ввела архитектуру на основе изолированных процессов (application pools), что повысило стабильность: сбой в одном приложении не приводил к остановке всего сервера. IIS 5.0 (2000) поставлялся с Windows 2000 и поддерживал ASP 3.0, а также включал улучшенную систему журналирования и поддержку WebDAV.

Эпоха IIS 6.0 (2003–2008)

Версия IIS 6.0, выпущенная вместе с Windows Server 2003, стала значительным шагом вперёд. Она полностью отказалась от модели на основе ISAPI-фильтров в пользу изолированных пулов приложений (application pools), работающих в отдельных процессах (w3wp.exe). Это обеспечило высокую надёжность и безопасность. IIS 6.0 также поддерживал HTTP-сжатие, кэширование статического контента и улучшенную аутентификацию (включая Kerberos). В этой версии была введена поддержка .NET Framework 1.1, что позволило размещать ASP.NET-приложения.

IIS 7.0 и 7.5 (2008–2012)

С выходом Windows Server 2008 и Windows Vista появился IIS 7.0, который претерпел кардинальную архитектурную переработку. Модульная структура позволила администраторам подключать только необходимые компоненты, снижая поверхность атаки. Ключевой особенностью стал встроенный менеджер конфигурации (IIS Manager), объединивший управление веб-сервером, ASP.NET и другими службами. IIS 7.0 также ввёл поддержку FastCGI для не-Microsoft технологий (PHP, Python). Версия 7.5 (Windows Server 2008 R2, Windows 7) добавила поддержку TLS 1.2, улучшила работу с PowerShell и внедрила функцию «IIS Best Practices Analyzer».

IIS 8.0 и 8.5 (2012–2016)

IIS 8.0, выпущенный с Windows Server 2012 и Windows 8, представил поддержку SNI (Server Name Indication) для HTTPS, что позволило размещать несколько SSL-сертификатов на одном IP-адресе. Была добавлена поддержка WebSocket (RFC 6455) и динамического сжатия. IIS 8.5 (Windows Server 2012 R2, Windows 8.1) улучшил управление пулами приложений, ввёл функцию «Idle Worker Process Page-Out» (выгрузка неактивных процессов в файл подкачки) и поддержку HTTP/2.

IIS 10.0 (2016 — настоящее время)

IIS 10.0 поставляется с Windows Server 2016, Windows 10 и Windows Server 2019/2022. Основные нововведения: поддержка HTTP/2 (RFC 7540), протокола QUIC (начиная с Windows Server 2022), улучшенная интеграция с контейнерами Docker, поддержка .NET Core и ASP.NET Core. В версии для Windows Server 2022 добавлена поддержка TLS 1.3 и HTTP/3 (на основе QUIC). IIS 10.0 также включает встроенную поддерку Let's Encrypt через модуль ACME.

Архитектура и компоненты

Модульная структура

IIS 10.0 состоит из более чем 40 модулей, которые можно включать или отключать через диспетчер IIS или PowerShell. Основные модули:

Пулы приложений (Application Pools)

Каждый пул приложений — это изолированный процесс (w3wp.exe), в котором выполняются одно или несколько веб-приложений. Изоляция предотвращает влияние сбоев одного приложения на другие. Пул может работать в режимах:

Конвейер обработки запросов

В IIS 7.0 и выше запрос проходит через конвейер, состоящий из упорядоченных этапов (событий). Основные этапы:

  1. BeginRequest — начало обработки.
  2. AuthenticateRequest — аутентификация.
  3. AuthorizeRequest — авторизация.
  4. ResolveRequestCache — проверка кэша.
  5. MapRequestHandler — выбор обработчика (статический файл, ASPX, PHP и т.д.).
  6. ExecuteRequestHandler — выполнение обработчика.
  7. ReleaseRequestState — освобождение состояния сессии.
  8. UpdateRequestCache — обновление кэша.
  9. EndRequest — завершение.

Классификация и редакции

IIS поставляется в нескольких редакциях, в зависимости от версии Windows:

Применение

Хостинг веб-сайтов и приложений

IIS используется для размещения:

Корпоративные решения

IIS является основой для многих корпоративных продуктов Microsoft, включая:

Разработка и тестирование

IIS Express — облегчённая версия IIS, входящая в состав Visual Studio. Она предназначена для локальной разработки и отладки веб-приложений без необходимости установки полной версии IIS.

Безопасность

Встроенные механизмы

IIS предоставляет несколько уровней защиты:

Известные уязвимости

За историю IIS было обнаружено несколько критических уязвимостей, наиболее известные:

Корпорация Microsoft регулярно выпускает обновления безопасности (Patch Tuesday) для устранения таких уязвимостей.

Инструменты администрирования

Сравнение с альтернативами

IIS часто сравнивают с другими веб-серверами:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →