Internet Information Services

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Internet Information Services
Разработчик

Microsoft

Операционная система

Microsoft Windows NT

Последняя версия

7.5

Тестовая версия

8.0

Лицензия

Проприетарная

Сайт

iis.net

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

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

Версии IIS[править | править вики-текст]

Номер версии Выпущена в составе Год
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

Служба 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 для каждого зарегистрированного посетителя сайта. Поэтому в последнем случае разработчикам сайтов и веб-приложений обычно приходится использовать собственные механизмы ограничения доступа.

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

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

  • Анонимная аутентификация (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)[3] — для аутентификации используется служба .NET Passport.
  • Аутентификация с использованием клиентского сертификата (certificate authentication) — для аутентификации пользователь должен предоставить SSL сертификат.

Реализация веб-приложений для IIS[править | править вики-текст]

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

  • ASP.NET — разработанная Microsoft технология; для IIS это — основное на сегодняшний день[4] средство создания веб-приложений и веб-служб. 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[5], ISAPI и SSI. Все остальные технологии являются надстройками, работающими через CGI, FastCGI или ISAPI.

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

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

Почтовые возможности[править | править вики-текст]

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

Примечания[править | править вики-текст]

  1. October 2011 Web Server Survey (англ.). Проверено 19 октября 2011. Архивировано из первоисточника 25 августа 2011.
  2. Authentication Methods Supported in IIS 6.0 (IIS 6.0). IIS 6.0 Documentation. Microsoft corporation. Проверено 13 июля 2011. Архивировано из первоисточника 5 августа 2012.
  3. Changes Between IIS 6.0 and IIS 7 Security. IIS.net. Microsoft Corporation (7 February 2010). Проверено 13 июля 2011. Архивировано из первоисточника 5 августа 2012.
  4. Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов
  5. FastCGI для IIS (technical preview 2)

Литература[править | править вики-текст]

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]