Internet Information Services

Материал из Википедии — свободной энциклопедии
(перенаправлено с «IIS»)
Перейти к навигации Перейти к поиску
Internet Information Services
Тип проприетарное программное обеспечениеиHTTP-сервер[вд]
Разработчик Майкрософт
Написана на C++
Операционная система Windows NT
Последняя версия
Сайт iis.net(англ.)

IIS(Internet Information Services,до версии 5.1 —Internet Information Server) —проприетарныйнаборсерверовдля нескольких службИнтернетаот компанииMicrosoft.IIS распространяется с Windows NT.

Основным компонентом IIS являетсявеб-сервер,который позволяет размещать в Интернетесайты.IIS поддерживает протоколыHTTP,HTTPS,FTP,POP3,SMTP,NNTP.По данным компанииNetcraftна июнь2015 года,почти 22 млн сайтов обслуживаются веб-сервером IIS, что составляет 12,32 % от общего числа веб-сайтов[2].

Номер версии Выпущена в составе Год
1.0 Windows NT 3.51 1995
2.0 Windows NT 4.0 1996
3.0 Пакет обновления3 дляWindows NT 4.0 1997
4.0 ПакетOption PackдляWindows NT 4.0 1998
5.0 Windows 2000 2000
5.1 Windows XP Professional 2001
6.0 Windows Server 2003 2003
7.0 Windows Vista;Windows Server 2008 2006
7.5 Windows 7;Windows Server 2008 R2 2009
8.0 Windows 8;Windows Server 2012 2012
8.5 Windows 8.1;Windows Server 2012 R2 2013
10 Windows 10;Windows Server 2016 2015

Служба WWW в составе IIS

[править|править код]

Основным компонентом IIS является веб-сервер — служба WWW (называемая такжеW3SVC), которая предоставляетклиентамдоступ к сайтам по протоколамHTTPи, если произведена настройка,HTTPS.

Один сервер IIS может обслуживать несколько сайтов (IIS 6.0 и выше). Каждый сайт имеет следующие атрибуты:

  • IP-адрессайта;
  • TCP-порт,на котором служба WWW ожидает подключений к данному сайту;
  • Заголовок узла(Host header name) — значениезаголовкаHostзапросаHTTP,указывающее обычноDNS-имя сайта.

Таким образом, например, один сервер с одним IP-адресом может обслуживать на одном TCP-порту несколько сайтов. Для этого необходимо создать несколькоDNS-записей, указывающих на IP-адрес сервера, и различать сайты по заголовкам узла.

Для каждого сайта указываетсядомашний каталог— каталог вфайловой системесервера, соответствующий «корню» сайта. Например, если сайтуwww.example.comсопоставлен домашний каталогD:\example,то на запрос ресурса с адресомhttp://www.example.com/index.htmвеб-сервер вернёт файлD:\example\index.htm.

Архитектура службы WWW

[править|править код]

В IIS 6.0, доступном в составе системWindows Server 2003,служба WWW претерпела серьёзные изменения. Был добавлен новый режим обработки запросов, называемыйрежимом изоляции рабочих процессов(англ.worker process isolation mode). В этом режиме всевеб-приложения,обслуживаемые сервером, работают в разных процессах, что повышает стабильность и безопасность системы. Кроме того, для приёма запросов HTTP был создан новыйдрайверhttp.sys,который работает врежиме ядра,что ускоряет обработку каждого запроса.

Все запросы к статическому содержимому, не требующие исполнения скриптов, исполняются самим драйвером http.sys в ядре, что сближает веб-сервер IIS с серверамирежима ядра.

При этом запросы к динамическому содержимому исполняются рабочим процессом и загруженными в его адресное пространство модулями. С точки зрения пути исполнения запросов не существует центрального процесса, что повышает надежность в случае отказа, вызванного ошибкой в скрипте или ином модуле исполнения. Рабочие процессы автоматически перезапускаются при возникновении ошибок.

ПротоколSSLподдерживается отдельным процессом HTTP SSL, который служит мостом между протоколом TCP и драйверомhttp.sys.

Безопасность в службе WWW

[править|править код]

Веб-сервер IIS предоставляет несколько способов разграничения доступа к сайтам ивеб-приложениям.Служба WWW в составе IIS отличается от других веб-серверов тем, что функции обеспечения безопасности в ней тесно интегрированы с системойWindows NT,на основе которой она работает. В частности, чтобы получить доступ к защищённому ресурсу, посетитель должен ввести имя и пароль пользователя, существующего в системе Windows, на которой установлен IIS (или в доменеActive Directory,если сервер принадлежит к домену). После этого пользователь работает с сайтом так же, как если бы он выполнилинтерактивный вход в системуна сервере. К нему применяются установленныефайловой системойNTFSразрешения на доступ кфайламикаталогам.Эта особенность IIS удобна для внутренних сайтов предприятий, однако практически неприменима для открытых сайтов Интернета, где невозможно создавать пользователя Windows для каждого зарегистрированного посетителя сайта. Поэтому в последнем случае разработчикам сайтов и веб-приложений обычно приходится использовать собственные механизмы ограничения доступа. Начиная с 8 версии, появилась возможность удаленного управления, с помощьюPowershell.

Определённый пользователь Windows сопоставляется с каждым посетителем сайта даже в том случае, когда ограничение доступа не требуется. Этот режим называется режимом анонимного доступа. В этом случае посетитель представляется на сервере как специальный пользователь, имя которого обычно имеет форматIUSR_xxxx(гдеxxxx— имя компьютера, на котором установлен IIS, в седьмой версии этот специальный пользователь не содержит имени компьютера, то есть простоIUSR). Этому пользователю должен быть разрешён доступ к ресурсам, которые открыты анонимным посетителям.

Начиная с версии 6.0 служба WWW поддерживает следующие методыаутентификации,то есть определения личности пользователя по имени и паролю:[3]

  • Анонимная аутентификация (anonymous authentication) — определение личности пользователя не выполняется.
  • Базовая аутентификация (basic authentication) — имя и пароль передаются по сети открытым текстом.
  • Дайджест-аутентификация(digest authentication) — пароль обрабатываетсяхеш-функциейперед отправкой по сети, что делает невозможным его прочтение в случае перехвата злоумышленником.
  • Встроенная аутентификация Windows (integrated Windows authentication) — выполняется попытка входа на сервер с теми же учётными данными, под которыми работаетбраузерпользователя.
  • Аутентификация для доступа к UNC-ресурсам (UNC authentication) — имя и пароль передаются удаленному серверу, на котором находится опубликованный в IIS UNC-ресурс, и удаленный сервер выполняет аутентификацию.
  • Аутентификация с использованием.NET Passport (.NET Passport Authentication) (удалена в Windows Server 2008 и IIS 7.0)[4]— для аутентификации используется служба.NET Passport.
  • Аутентификация с использованием клиентского сертификата (certificate authentication) — для аутентификации пользователь должен предоставитьSSL-сертификат.

Реализация веб-приложений для IIS

[править|править код]

Веб-сервер IIS поддерживает несколько различных технологий созданиявеб-приложений:

  • ASP.NET— разработанная Microsoft технология; для IIS это — основное на сегодняшний день[5]средство создания веб-приложений ивеб-служб.IIS 6.0 поставляется вместе с операционными системами, в которые также изначально входит.NET Framework,так что поддержка ASP.NET как будто уже встроена в IIS 6.0; для более ранних версий необходимо отдельно загрузить и установить.NET Framework.
  • ASP— предшествовавшая ASP.NET технология созданиядинамических веб-страницна основесценариев.Входит в поставку IIS начиная с версии 3.0.
  • CGI— стандартная межплатформенная низкоуровневая технология создания динамических веб-страниц.
  • FastCGI— клиент-серверный протокол взаимодействия веб-сервера и приложения.
  • ISAPI— низкоуровневая технология, аналогичная интерфейсу модулейApache,предоставляющая полный доступ ко всем возможностям IIS, возможность разработки веб-приложений в машинном коде и возможность переопределения части функций IIS и добавления к нему функций, как связанных с генерацией контента, так и не связанных с этим. Подсистема исполнения скриптов ASP и подсистема ASP.NET выполнены как модули ISAPI.
  • SSI— включение в одни страницы текста из других страниц. Строго говоря, веб-приложением не является, поскольку IIS поддерживает лишь ограниченный набор возможностей и без того малофункционального SSI. В частности, IIS5 поддерживает только статическое включение и игнорирует команды условного ветвления.

Сам сервер поддерживает только CGI, FastCGI[6],ISAPI и SSI. Все остальные технологии являются надстройками, работающими через CGI, FastCGI или ISAPI.

При помощи CGI приложения для IIS могут разрабатываться на основе практически любых, в том числе сторонних, инструментов, допускающих запись встандартный потоквывода и чтениепеременных средыPerl,C/C++и даже средствами интерпретатора командной строкиCmd.exe.

Технология ISAPI позволяет, с одной стороны, создавать специальные приложения для IIS, требующие особенно тесного взаимодействия с механизмом сервера, а с другой стороны, является удобной платформой для организации эффективного взаимодействия IIS с другими технологиями разработки веб-приложений — например,PHPиPerl.

Почтовые возможности

[править|править код]

IIS поддерживает работу SMTP/POP3-сервисов. В современных версияхMicrosoft Exchange Serverреализация протоколовSMTP,POP3иIMAPвыполнена в виде подсистем к IIS, заменяющих поставляемые с IIS почтовые подсистемы.

  1. https://www.filesuffix.com/en/extension/idq
  2. June 2015 Web Server Survey(англ.).Дата обращения: 12 июля 2015.Архивировано13 июля 2015 года.
  3. Authentication Methods Supported in IIS 6.0 (IIS 6.0).IIS 6.0 Documentation.Microsoft corporation. Дата обращения: 13 июля 2011. Архивировано изоригинала5 августа 2012 года.
  4. Changes Between IIS 6.0 and IIS 7 Security.IIS.net.Microsoft Corporation (7 февраля 2010). Дата обращения: 13 июля 2011. Архивировано изоригинала5 августа 2012 года.
  5. Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов
  6. FastCGI для IIS (technical preview 2).Дата обращения: 27 мая 2009.Архивировано26 ноября 2007 года.
  • Станек Уильям Р.Internet Information Services (IIS) 7.0. Справочник администратора. —СПб.:Русская редакция,2009. — 528 с. —ISBN 978-5-7502-0383-3.
  • Адамc Крис.Администрирование сервера IIS 7. —М.:Бином,2010. — 362 с. —ISBN 978-5-9518-0367-2.