Б.
Морис. HTML в действии (+ дискета) Глава 13
Сервер к вашим услугам: самостоятельные публикации
Несмотря на то, что во многих случаях стоит воспользоваться
услугами коммерческих Internet-провайдеров, существуют и
доводы в пользу установки собственного web-сервера. Он не
только позволит самостоятельно публиковать документы, но и
предоставит гибкие возможности по контролю доступа к нему.
Возможно, вы располагаете информацией, которую не собираетесь
делать общественным достоянием. Установив у себя web-сервер,
можно ограниченно публиковать свои документы для друзей и
бизнес-партнеров без выделения линии и круглосуточного
подключения. В этой главе описывается установка и
использование популярных HTTP-серверов для Windows 3.x и
Windows NT, с помощью которых можно публиковать
информацию как для избранных читателей, так и для всего мира.
Обеспечение работы собственного web-сервера Что
понадобится для начала работы? Если ваша цель - публикация
web-страниц для широкой публики, то необходимо круглосуточное
подключение к Internet и компьютер, на котором будет работать
web-сервер. Круглосуточное подключение может реализовываться
по-разному: от медленной линии со скоростью передачи
14,4 кбод и наиболее распространенных линий
(56 кбод) до линий T-3 (45 Мбод). Естественно, чем
выше пропускная способность линии, тем больше придется за нее
платить. Не существует стандартных расценок на выделенные
линии - в каждом случае они определяются конкретной компанией
и зависят от того, как далеко располагается ваш сервер от
ближайшего коммутационного узла. Лучше всего связаться с
провайдером услуг Internet и узнать у него, как лучше всего
организовать выделенную линию. В крайнем случае он вас
направит к конкретному человеку в телефонной компании.
Конечно, можно публиковать свои web-страницы и без
круглосуточного подключения. Это особенно полезно при создании
и тестировании web-страниц, а также при распространении
информации для ограниченного круга лиц. Чтобы читатели могли
получить доступ к вашим страницам, необходимо установить
web-сервер, установить соединение с провайдером и,
естественно, запустить сервер.
Если в вашем офисе или учебном заведении уже имеется
подключение к Internet, проблем будет намного меньше. Все, что
понадобится в этом случае - подключение к локальной сети и
компьютер, на который можно установить web-сервер. Web-серверы
часто называют HTTP-серверами, так как HTTP (HyperText
Transfer Protocol - протокол передачи гипертекста) является
основным протоколом обмена информацией в World Wide Web. Можно
использовать самые разные операционные системы: многочисленные
варианты UNIX, а также Windows 3.1, Windows NT и
MacOS. Поскольку эта книга ориентирована на пользователей
Windows, в этой главе обсуждаются серверы, работающие в средах
Windows 3.1 и Windows NT.
В этой главе будут рассмотрены различные серверы для
Windows 3.11 и Windows NT 3.5. Среди них
16-битная версия сервера для Windows, написанная Робертом
Денни, и 32-битный сервер для Windows NT, созданный в
центре European Microsoft Windows NT Academic Centre
(EMWAC). В дополнение к этому будет описано еще несколько
превосходных серверов для Windows NT.
Все серверы обеспечивают основные функции Web, и делают это
очень неплохо. На окончательный выбор могут повлиять некоторые
специфические возможности серверов, а также качество
документации и уровень поддержки.
16-битный сервер WinHTTPD Если у вас нет ничего,
кроме лимонов - делайте лимонад (шутка). Хотя
Windows 3.11 и не очень похожа на лимон, она не слишком
подходит для создания многопользовательского узла Internet,
каковым и является HTTP-сервер. Однако Роберт Денни очень
постарался и смог организовать в этой среде работу своего
многопользовательского web-сервера WinHTTPD. Согласно тестам
Денни, его сервер, установленный на компьютере 486DX/66 с
8 Мб памяти, может обрабатывать 8 запросов в секунду при
среднем размере запроса 4 Кб. Такой поток данных более
чем в четыре раза превосходит пропускную способность
выделенной линии на 56 кбод и вплотную приближается к
пропускной способности многих адаптеров локальных сетей. Так
что, если ваш канал медленнее, чем T-1, этот сервер может
поставлять данные быстрее, чем линия связи способна
пропустить.
Процедура установки этого сервера предельно проста. Даже
если вы никогда раньше не имели дела с web-серверами,
установить и запустить «демонстрационную» версию можно
буквально за считанные минуты. В комплекте этого сервера есть
документация, построенная на основе описания HTTP-сервера NCSA
с изменениями, отражающими особенности среды Windows, включая
экспериментальный CGI-интерфейс (см. главу 10
и ниже в данной главе).
Сервер WinHTTPD является условно-бесплатным (shareware). В
данном случае это означает, что для его коммерческого
использования необходимо заплатить $99. Для личного
пользования сервер является бесплатным.
Предупреждение Многие пакеты протоколов TCP/IP
разрабатывались и тестировались для приложений-клиентов, а не
серверов. Использование персонального компьютера под Windows в
качестве сервера станет серьезным испытанием для
установленного пакета TCP/IP и может вызвать проблемы. Прежде
чем перейти на другой продукт, узнайте, не существует ли
обновленной и исправленной версии. Если вы подключены к
локальной сети через протокол TCP/IP, попробуйте пакет
Microsoft TCP/IP для Windows для Рабочих групп. Следует
применять его релиз «a» (или более поздний), в котором
исправлены ошибки, не позволявшие использовать первоначальную
версию с сервером WinHTTPD. В настоящее время этот пакет
протоколов является одним из самых надежных для работы с
WinHTTPD. Некоторые жалуются на происходящие иногда зависания
системы при работе с этим сервером. Если вы организуете
коммерческую систему, где требуется высокая степень
надежности, разумнее будет использовать Windows NT и
соответствующий HTTP-сервер.
Список возможностей данного сервера достаточно внушителен:
Протокол HTTP/1.0.
Высокая скорость работы: на компьютере 486DX/66 может
обрабатываться более 25 000 запросов в час.
Два режима поддержки интерфейса CGI: CGI версии 1.1
(модифицированный), использующий командные файлы в виртуальной
машине DOS, и экспериментальный Windows-CGI интерфейс с
декодированием полей форм.
Генерация сервером списков файлов и обозначение их типов
значками, сходными с традиционными для серверов CERN и UNIX
NCSA.
Автоматический анализ тегов в HTML-документах для создания
каталогов.
Автоматическое отображение типов данных MIME протокола
HTTP в расширения DOS-файлов. Это означает, что, например,
файл с расширением .gif, посылаемый web-броузеру, будет
идентифицирован как тип «image/gif». При помощи команды
Options д Preferences д Helper Applications в броузере
Netscape можно получить длинный список типов MIME (он
расположен под заголовком «File Type»).
Поддержка изображений-карт в стандарте NCSA (для
Windows-CGI), конфигурируемое управление доступом к локальным
и глобальным документам.
Средства авторизации доступа.
Подробная HTML-документация с примерами, включая
руководства администратора и разработчика.
Возможность настройки сетевого порта.
Свежую информацию о сервере WinHTTPD можно получить на узле
http://www.city.net/win-httpd.
Установка сервера WinHTTPD Итак, можно приступать
к экспериментам с web-сервером WinHTTPD в операционной системе
Windows.
Что вам понадобится. Как минимум, нужно иметь персональный
компьютер, работающий под Windows 3.1 или Windows для
Рабочих групп (Windows for Workgroups) 3.11 (этот сервер
не работает под Windows NT), пакет протоколов TCP/IP со
стандартным интерфейсом Winsock и соединение с Internet (или
другой сетью, к которой подключены ваши читатели).
Совет Если пользователи в вашем офисе или университете
уже подключены к локальной сети, нет необходимости
организовывать соединение с Internet. Однако, наличие на
компьютерах пакета протоколов TCP/IP все равно обязательно.
Требования к компьютеру во многом зависят от поставленных
задач. Если вы собираетесь только попробовать себя в создании
web-шедевров, подойдет любой компьютер, способный работать под
Windows. Несмотря на то, что в документации рекомендуется
устанавливать сервер как минимум на 486DX/33 с 8 Мб
памяти, мы тестировали WinHTTPD на машине 386SX/16, и она
работала в локальной сети быстрее, чем любой модем. Однако,
если у вас серьезные намерения, стоит следовать рекомендациям,
приведенным в инструкции.
Начало работы. Перед запуском установочной программы
необходимо установить в файле AUTOEXEC.BAT переменную
окружения TZ для часового пояса. Для восточного побережья
соединенных штатов соответствующая строка должна выглядеть
так: SET TZ=EST5EDT, это означает, что временная зона
называется EST (Eastern Standard Time), и время в ней на 5
часов отстает от гринвичского (UCT - Universal Coordinated
Time). Для западного побережья Соединенных штатов нужно
установить TZ=PST8PDT. Эта переменная используется сервером
при создании протокола работы в формате NCSA, в котором должно
приводиться гринвичское время. Если там, где вы живете, не
осуществляется переход на летнее время, вторую трехбуквенную
аббревиатуру можно опустить 1.
После установки сервера с ним можно соединиться с любого
работающего в сети компьютера, включая тот, на котором
установлен сам сервер.
Помимо собственно HTTP-сервера, в комплект поставки
WinHTTPD входит программа контроля, написанная на Visual Basic
и Microsoft Access. Она позволяет отслеживать обращения к
серверу и автоматически генерирует статистику в виде
HTML-страниц. Установить эту программу так же просто, как и
сам сервер.
Дополнительные утилиты для сервера
WinHTTPD Polyform. С помощью программы Polyform,
разработанной компанией Willow Glen Graphics, можно быстро
начать работать с формами. Это даст вам возможность получать
информацию от пользователей, не создавая для этого специальных
CGI-программ.
Polyform обеспечивает прием информации от созданной вами
формы, сохраняет ее в файле на web-сервере, возвращает
web-броузеру страницу с подтверждением приема и (если нужно)
отправляет почтовое сообщение с полученными данными по
заданному адресу.
VBStats представляет собой отличную статистическую
программу для web-сервера (на самом деле - это целый набор
программ). Она позволяет на основе файлов протоколов
(log-файлов) проанализировать статистику использования
web-сервера. Этот пакет можно найти на http://city.net/win-httpd/lib/uti-support/,
имя файла - VBSTAT31.ZIP. Программа написана на Visual Basic и
Access, однако наличия этих пакетов для ее работы не
требуется. «Сердцем» VBStats является база данных в формате
Access, которая содержит следующие таблицы:
Таблица Содержание
Accesses Все обращения к серверу в соответствии со строками
файла протокола.
AuthUsers Список имен пользователей, зарегистрированных на
сервере.
Objects Все URL, к которым производилось обращение.
PastTotals Понедельная статистика за время, прошедшее после
предыдущего составления отчета.
RestrictPats Шаблоны, использующиеся для ограничения доступа.
Sites Хост-имена (или IP-адреса) клиентов.
Программа VBStats обращается к этой базе данных и
представляет данные из нее различными способами, в том числе в
виде графиков и диаграмм.Wincron. Утилита Wincron обеспечивает
автоматический запуск нужных программ в нужное время. Она
включена в комплект сервера WinHTTPD для ежедневного
автоматического запуска программы VBStats.
EMWAC HTTPS для Windows NT Хотя WinHTTPD для
Windows 3.1 представляет собой неплохой HTTPD-сервер, во
многих случаях в качестве фундамента web-узла стоит
предпочесть более устойчивую операционную систему.
Windows NT 3.5 имеет множество преимуществ над
16-битной Windows, включая более серьезные средства
безопасности, многозадачность и защиту памяти.
Мощный сервер EMWAC HTTP можно использовать бесплатно в
любых целях. Он не имеет некоторых продвинутых средств,
присущих профессиональным NT-серверам, которые обсуждаются в
этой главе позднее. В нем нет контроля доступа и режима
«уполномоченного» (proxy) сервера, однако во многих случаях
это не имеет значения.
EMWAC - аббревиатура, которая расшифровывается как European
Microsoft Windows NT Academic Centre (Европейский
академический центр Microsoft Windows NT). Этот центр
входит в компьютерную службу Эдинбургского университета. Самую
свежую информацию об EMWAC и других приложениях для
Windows NT можно нати на http://emwac.ed.ac.uk/html/internet_toolchest/top.html.
Совет Помимо собственно HTTP-сервера, можно получить
бесплатные версии серверов Gopher и WAIS, а также комплект
разработчика WAIS. Все эти пакеты могут работать совместно с
web-сервером EMWAC. Все это можно получить также, приобретя
Microsoft Windows NT 3.5 Resource Kit, или же с
FTP-узла фирмы Microsoft (ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt35/i386).
Этот web-сервер прост в установке (как и вообще все серверы
для Windows NT) и устанавливается как дополнение к
операционной системе Windows NT 3.5. С ним не
поставляется первоначальный «кусочек паутины», как с другими
серверами, так что первым делом придется создать свои
страницы.
С сервером EMWAC HTTPS поставляется несколько CGI-программ
(написанных на Си), которые можно использовать в качестве
образца. Здесь можно использовать только программы,
запускаемые из командной строки, так что, в отличие от
WinHTTPD, вам не пригодится Visual Basic или подобные ему
системы разработки приложений. Вместо этого в Windows NT
к вашим услугам множество программ командной строки. Например,
существует NT-версия интерпретатора perl, которую можно
получить через многие анонимные FTP-узлы, включая упомянутый
выше узел EMWAC.
К серверу EMWAC существует очень удобное дополнение -
поисковое средство WAIS. Эта аббревиатура расшифровывается,
как Wide-Area Information Service (глобальные информационные
услуги), однако в данном случае WAIS используется для
локального поиска, а web-сервер возвращает результат поиска
пользователю.
Установка сервера EMWAC Что вам понадобится.
Естественно, прежде всего необходим компьютер с операционной
системой Windows NT, причем неважно, будет ли это рабочая
станция или сервер. Строгих требований к оперативной памяти и
процессору нет, так что решайте сами, устраивает ли вас время
отклика системы. Мы тестировали этот сервер на компьютере с
процессором 386/33 и он работал нормально, хотя на такую
машину вообще не рекомендуется ставить Windows NT.
Естественно, если вы собираетесь сделать ваши документы
общедоступными, понадобится подключение к Internet.
Начало работы. В комплект сервера EMWAC входит документация
в форматах PostScript (.ps) и Microsoft Write (.wri). Ее
необходимо прочитать по крайней мере один раз, чтобы получить
общее представление о том, как работает сервер. Для его
установки необходимо выполнить следующую последовательность
действий:
1. Войдите в систему Windows NT как пользователь с
привилегиями администратора.
2. Этот HTTP-сервер поставляется в трех вариантах - для
платформ Intel, MIPS и DEC Alpha. В каждом подкаталоге
расположены следующие файлы:
HTTPS.EXE Исполняемый файл HTTP-сервера.
HTTPS.CPL Дополнение к панели управления (Control Panel).
HTTPS.HLP Файл справки к дополнению панели управления.
HTTPS.DOC Руководство пользователя в формате Word для
Windows.
HTTPS.PS Готовое к печати руководство пользователя в
формате PostScript.
HTTPS.WRI Руководство пользователя в формате Windows
Write.
EGSCRIPT.ZIP Примеры CGI-скриптов.
COPYRITE.TXT Предупреждение об авторских правах на программ-
ное обеспечение.
READ.ME Краткое описание новых возможностей и т.п.
Выберите версию, соответствующую вашему компьютеру, и
скопируйте эти файлы в какой-нибудь каталог. Удачным местом
будет \WINNT\SYSTEM32, где располагаются многие сервисные
программы, однако можно выбрать и любой другой каталог. С
помощью команды Security д Permissions в File Manager
убедитесь, что пользователь SYSTEM имеет права на чтение
данных файлов.
3. Переместите файлы HTTPS.CPL и HTTPS.HLP в каталог
\WINNT\SYSTEM32 (если они еще не находятся там). Запустите
Control Panel из оболочки Program Manager, чтобы проверить,
присутствует ли в панели управления пиктограмма «HTTP Server».
4. Проверьте IP-адрес своего компьютера с помощью команды:
https -ipaddress В результате этого должны отобразиться
сетевое имя компьютера (например, emwac.ed.ac.uk) и его
IP-адрес, полученный от интерфейса Windows Sockets API
(IP-адресов может быть и несколько). Если эта информация
неправильна, придется перенастроить пакет TCP/IP. HTTP-сервер
не будет работать, если сетевой адрес (или список адресов,
если машина имеет несколько сетевых интерфейсов) неверен.
5. Установите HTTPS в сервисную таблицу Windows NT (и
одновременно зарегистрируйте его в Event Logger), введя в
командной строке команду https с флагом -install. (Внимание!
Необходимо ввести эту команду, используя именно ту копию
HTTPS.EXE, которую вы расположили в каталоге \WINNT\SYSTEM32,
а не какой-нибудь другой экземпляр, расположенный во временном
каталоге) Например, введите https -install. Сервер
зарегистрирует себя в Service Manager. При возникновении
проблем обратитесь к разделу документации, посвященному
установке.
6. Чтобы убедиться в том, что установка прошла успешно,
запустите Control Panel и дважды щелкните на значке Services.
Откроется диалоговое окно со списком сервисных приложений, где
должен присутствовать HTTP-сервер. Если он там есть,
обратитесь за дальнейшими инструкциями к разделу документации,
посвященному конфигурированию сервера.
Настройка опций сервера EMWAC производится с помощью панели
управления (Control Panel) Windows NT. После установки
сервера там должен появиться его значок. После двойного щелчка
на нем откроется программа настройки сервера. Возможные
установки хорошо документированы в справочном файле сервера
(HTTPS.HLP).
Дополнительные утилиты для сервера HTTPS WAIS
Toolkit. Помимо собственно HTTP-сервера, EMWAC поставляет и
другие приложения для Windows NT. В частности, может
пригодиться поисковая система WAIS. Для ее использования
следует создать HTML-страницу, содержащую поле «ISINDEX» (мы
обсуждали его в главе 10,
«Формы, базы данных и интерфейс CGI»). Когда пользователь
вводит строку для поиска в текстовое поле «ISINDEX» и
отправляет форму, сервер HTTPS автоматически запускает
программу WAISLOOK, которая просматривает базу данных WAIS,
имеющую то же имя, что и пославшая запрос HTML-страница.
Например, если вы создали страницу под названием myindex.htm,
то сервер выдаст запрос программе WAISLOOK, указав в качестве
области поиска базу данных myindex. Ценой незначительных
усилий можно создать индексные указатели на страницы вашего
узла или даже всего Web.
Как и HTTP-сервер, WAIS Toolkit поставляется с руководством
пользователя, а в документации сервера HTTPS объясняется, как
интегрировать с ним систему WAIS.
WebSite Если вам понравился сервер Роберта Денни
WinHTTPD для Windows 3.1, то версия этого сервера для
Windows NT вас просто очарует. Этот сервер, вместе с
дополнительными программами других авторов, распространяется
компанией O'Reilly and Associates. Более подробную информацию
можно получить, отправив запрос по адресу website@ora.com. Денни
сохранил все лучшие свойства своего сервера WinHTTPD и, с
помощью коллег, добавил дополнительные средства, необходимые
для коммерческого web-узла. Ниже приводится небольшая выборка
из полного списка возможностей, обеспечиваемых этим сервером.
Сервер может запускаться как обычное приложение или как
сервис Windows NT.
Совместим с Windows NT 3.5 и Windows 95.
Поддерживает Windows CGI для доступа к ресурсам
Windows-приложений, например, базам данных или почтовым
услугам с помощью Visual Basic.
Обеспечивает полную и прозрачную поддержку CGI-программ
командной строки, perl-скриптов и сценариев UNIX-подобной
командной оболочки Korn shell (в пределах совместимости NT со
стандартом POSIX).
Обеспечивает авторизацию доступа с помощью идентификаторов
и паролей.
Поддерживает возможность объединения пользователей в
группы.
Обеспечивает контроль доступа на уровне пользователей и
групп.
Обеспечивает контроль доступа по IP-адресу или подсети.
Использует встроенные URL для сбора системной информации,
например, статистики использования.
Обеспечивает контроль доступа к каталогам файлов.
Реализует расширенное отображение списка файлов: ·
верхние и нижние колонтитулы страниц каталога, · значки для
идентификации различных типов файлов (типов MIME), ·
поддержку скрытых файлов, · описания HTML-файлов, взятые из
их заголовков, · расширенные описания файлов, доступные
через гиперссылки в каталоге.
Расширенные возможности трассировки.
Множество примеров CGI-программ, включая приложения Visual
Basic и perl-скрипты.
Возможность настройки сетевых портов.
Интегрированные программы-дополнения (add-on) и простота
обслуживания системы.
Программа настройки сервера имеет интерфейс с вкладками в
стиле Windows 95.
WebSite содержит две действительно интересные возможности.
Одна из них - обработка встроенных URL. Некоторые URL,
начинающиеся с тильды (~), например «/~stats», дают серверу
команду на генерацию специальных HTML-страниц. Так, функция
«/~stats» создает страницу со статистическими данными об
использовании сервера. Другое средство - возможность выбора
режима работы: в виде обычного приложения либо в виде сервиса.
Предпочтительный режим зависит от нюансов использования
интерфейса CGI и ваших требований. Объявленная цена WebSite -
$499.
Дополнительные утилиты для сервера WebSite В
комплект сервера включены три утилиты, которые значительно
упрощают процесс создания web-узла. Это Mapedit, Webview и
Webindex.
MapEdit представляет собой программу для создания
изображений-карт, она позволяет разметить любой GIF-файл.
Mapedit имеет простой графический интерфейс, позволяет указать
в растровом изображении области практически любой формы и
определять для них URL назначения. Подробную информацию об
изображениях-картах можно найти в главе
8, «Использование изображений».
Webview - великолепная программа, которая
просматривает все web-страницы на узле и создает визуальное
представление для каждого типа ссылок и изображений. Она
проверяет при этом все ссылки, как внутренние, так и внешние.
Это позволяет найти недействительные ссылки и исправить их до
того, как появятся жалобы читателей. Поэтому утилита Webview
является просто незаменимым средством для обслуживания
web-сервера.
Webindex заменяет поисковые средства WAIS. Эта программа
имеет простой интерфейс и обеспечивает индексацию всех
документов на сервере, а также позволяет вставлять в документы
поля ISINDEX для запуска средств поиска.
Есть два возможных режима работы этого HTTP-сервера в среде
Windows NT: в качестве сервиса операционной системы либо
как приложения пользовательского уровня. Вы можете выбрать
нужный режим, основываясь на собственных требованиях и
представлениях о том, что «лучше» для сервера World Wide Web.
Сервис Windows NT работает в фоновом режиме и
непосредственно управляется операционной системой (под вашим,
разумеется, руководством). Он запускается в момент загрузки
операционной системы и не зависит от работы пользователей.
Примером сервиса, включенного в Windows NT, является
FTP-сервер. Он становится доступен сразу после старта
операционной системы и работает до тех пор, пока машина не
будет выключена. Сервис может взаимодействовать только с
другими сервисами или программами командной строки.
С другой стороны, приложение обычно запускается
пользователем (или автоматически в тот момент, когда
пользователь входит в систему). Приложения могут
взаимодействовать с сервисами, программами командной строки и
другими приложениями через все типы интерфейсов, включая
стандартные сообщения Windows.
Purveyor Purveyor - профессиональная версия
HTTP-сервера EMWAC для Windows NT. Разработанный на
основе устойчивого и проверенного EMWAC, Purveyor имеет то
преимущество, что он не является «версией 1.0». В
настоящее время это единственный сервер для Windows NT,
который может работать в режиме «уполномоченного» (proxy)
сервера с кэшированием (это важно для тех компаний, которые
осуществляют строгий контроль за обменом данными между
локальной сетью и Internet).
Этот сервер обеспечивает полный спектр возможностей,
включая:
Режим «уполномоченного» сервера: это позволяет пересекать
границы, установленные системным маршрутизатором.
Кэширование в уполномоченном режиме: это ускоряет
обработку повторных запросов web-страниц.
Работает как сервис операционной системы.
Может работать на платформах Intel и Alpha.
Обеспечивает авторизацию доступа с помощью идентификатора
и пароля.
Поддерживает возможность объединения пользователей в
группы.
Обеспечивает контроль доступа на уровне пользователей и
групп.
Обеспечивает контроль доступа по IP-адресу или подсети.
Контроль доступа встроен в File Manager Windows NT.
Возможность настройки сетевых портов.
Полное протоколирование всех транзакций с фиксацией даты,
времени, запрошенной HTML-страница и IP-адреса пользователя.
Стоит упомянуть интеграцию сервера Purveyor с File
Manager NT. Хотя все профессиональные серверы
обеспечивают контроль доступа, ни в одном из них это не
делается так просто, как в Purveyor. Его программа установки
добавляет в меню File Manager новый элемент под названием
«Purveyor» (Чтобы увидеть это новое меню, понадобится
перезапустить File Manager). Чтобы изменить права доступа к
какому-либо объекту, необходимо выделить файл или каталог и
выбрать команду Edit Access Control в меню Purveyor. Откроется
диалоговое окно, в котором можно будет выбрать тип контроля
доступа, который вы хотите установить для выделенного объекта:
на уровне пользователя, группы или сетевого IP-адреса.
Purveyor поставляется с системой оперативной подсказки,
имеющей богатые возможности поиска нужной информации. Более
подробно о сервере Purveyor можно узнать на web-узле компании
Process Software по адресу http://www.process.com/prodinfo/purvdata.htm.
Кроме описанного web-сервера, Process Software поставляет
неплохой NFS-сервер для Windows NT, который будет полезен
при работе в смешанной сетевой среде с UNIX-системами. Web- и
NFS-серверы можно получить бесплатно на тестовый период
продолжительностью 30 дней. После этого, если вы собираетесь
продолжать их использовать, необходимо будет заплатить за
продукт. Объявленная цена Purveyor - $1 995.
ALIBABA HTTP-сервер ALIBABA разработан
австрийской компанией Computer Software Manufaktur. В нем
реализованы все возможности, свойственные профессиональным
HTTP-серверам, включая контроль доступа, отображение типов
MIME, а также многопоточная обработка. В нем также реализован
интерфейс Windows CGI, очень близкий к использованному в
сервере компании O'Reilly. Более подробную информацию о
сервере ALIBABA можно получить по адресу http://www.csm.co.at/csm/. Ниже приведен
краткий обзор его основных возможностей.
Работает как многопоточный сервис Windows NT.
Поддерживает протокол HTTP 1.0.
Может передавать web-броузеру списки файлов.
Поддерживает интерфейс CGI 1.0 с полным набором
переменных окружения.
Конфигурируемое назначение сетевого порта.
Поддерживает режимы GET и POST.
Настраиваемый сетевой порт.
Возможность настройки множества параметров, включая
корневой каталог сервера, имя документа по умолчанию и т.
д.
Игнорирование каталогов.
До 40 псевдонимов.
До 40 псевдонимов скриптов.
До 200 значков(или GIF-изображений) для расширений файлов.
До 400 расширений для типов MIME.
Регистрация обращений (в формате Common
Logformat 1.2).
Протоколирование ошибок.
Ряд сообщений об ошибках HTTP можно переопределить
(некоторые даже с использованием параметров).
Изображения-карты в формате NCSA.
Серверные CGI-программы для Windows CGI Многие
HTTP-серверы, работающие в среде Windows, поддерживают
расширение CGI, разработанное Робертом Денни. Это расширение
обычно называют Windows CGI. Хотя в Windows 3.1,
Windows 95 и Windows NT встроено много мощных
средств, возможности работы с командной строкой не входят в их
число. Расширение Windows CGI предназначено для того,
чтобы обойти это ограничение и позволить использование богатых
возможностей Windows-приложений. Большинство принципов,
включая передачу параметров через переменные окружения, этот
вариант интерфейса унаследовал от стандартного CGI. Однако,
вместо использования потока «стандартного ввода», информация
передается через файлы, которые могут быть прочитаны любой
программой. После создания временных файлов данных сервер
запускает программу обработки CGI, которой может быть любое
Windows-приложение. Программа считывает файлы данных,
обрабатывает поступившую от формы информацию, создает
HTML-страницу и сохраняет ее во временном выходном файле,
который затем передается обратно web-броузеру.
Серверные CGI-программы для Windows NT
POSIX-скрипты Встроенный командный язык
Windows NT сам по себе не очень подходит для написания
CGI-сценариев, в основном потому, что в нем даже внутри
кавычек нельзя применять символы «<» и «>». К счастью,
Microsoft поставляет совместимую с POSIX командную оболочку
sh.exe, которая хорошо подходит для написания небольших
CGI-программ. Программа sh.exe бесплатно распространяется в
составе Windows NT 3.5 Resource kit, который можно
получить с FTP-сервера компании Microsoft. Программы на
командном языке зависят от используемого сервера,
рассмотренные ниже примеры ориентированы на HTTP-сервер EMWAC.
Сервер Purveyor разработан на базе EMWAC, поэтому эти примеры
будут работать и с ним. Писать сценарии для сервера WebSite
можно с большей гибкостью.
Прежде всего необходимо создать форму, которая будет
вызывать сценарий testcgi.sh. Соответствующий командный файл
для сервера EMWAC выглядит следующим образом:
echo "Content-type: text/html" echo echo
"<HTML><HEAD><TITLE>Тест CGI-сценария
командной оболочки</TITLE> </HEAD>" echo
"<BODY><H1> Тест CGI-сценария Posix-совместимой
командной оболочки </H1>\n<HR>Переменные
окружения:<PRE>" set echo
"</PRE><HR></BODY></HTML>"
Эта программа всего лишь возвращает значения переменных
окружения, так что вызывающая ее форма может быть абсолютно
любой. Необходимо лишь, чтобы структура тега <FORM>
выглядела следующим образом:
<FORM
METHOD=POST ACTION="/имя_каталога/sh.exe?/имя_каталога/TESTCGI.SH">
Вместо «имя_каталога» должен быть указан относительный (от
каталога, в котором расположены HTML-документы) путь к файлам
сценариев. Чтобы приведенный пример работал, программа sh.exe
должна быть расположена в том же каталоге, что и сценарий для
нее. Первая часть значения атрибута ACTION определяет
исполняемый файл sh.exe, который и запускается HTTP-сервером.
Вторая часть (после знака вопроса) представляет собой
командную строку, которая передается командному процессору
sh.exe, в данном случае это путь к файлу TESTCGI.SH. Данные из
формы поступают в поток стандартного ввода, который командный
файл должен будет прочитать.
Обратите внимание на следующие правила: 1. Должен
использоваться метод POST. 2. Исполняемый файл командной
оболочки POSIX, sh.exe должен быть расположен в том же
каталоге, что и файлы сценариев для него. Путь к этому
каталогу должен быть указан в атрибуте ACTION. 3. В языке
POSIX буквы верхнего и нижнего регистров считаются разными
символами, поэтому имя сценария обязательно должно быть
набрано в нужном регистре.
Perl-скрипты Мощный командный язык perl хорошо
знаком многим пользователям различных UNIX-подобных
операционных систем (таких, например, как Solaris). Если вы
относитесь к их числу, вас наверняка обрадует весть о том, что
perl существует и для Windows NT. Его можно бесплатно
получить с FTP-узла EMWAC. Perl-скрипты используются в
качестве серверных CGI-программ почти так же, как и сценарии
командной оболочки. В этом случае тоже необходимо правильно
задать в форме тег <FORM>:
<Form
METHOD=POST ACTION="/имя_каталога/perl.exe?/имя_каталога/test.pl"> где
«имя_каталога» - относительный путь к каталогу с файлами
сценариев. В этот подкаталог необходимо поместить и
исполняемый файл perl.exe. Первая часть значения атрибута
ACTION определяет местонахождение программы perl.exe, которая
и запускается HTTP-сервером. Вторая часть (после знака
вопроса) представляет собой командную строку, которая
передается командному интерпретатору perl.exe, в данном случае
это путь к файлу test.pl. Данные из формы поступают в поток
стандартного ввода, который perl-скрипт должен будет
прочитать.
Скрипт должен возвратить текстовую или HTML-страницу. В
этом случае содержимое файла test.pl может выглядеть следующим
образом:
#!./perl print "Content-type: text/html\n"; print
"\n"; print "<HTML><HEAD><TITLE>Тест
CGI-сценария на
Perl</TITLE> </HEAD>\n"; print
"<BODY><H1>Тест CGI-сценария на
Perl</H1>\n<HR>Переменные
окружения:<PRE>\n"; foreach $var (sort keys(%ENV))
{ print $var, ": ",$ENV{$var},"\n"; } print
"</PRE><HR></BODY></HTML>\n";
Существует множество CGI-программ, написанных на perl,
однако имейте в виду, что в основном они создавались для
использования в среде UNIX, так что для адаптации к
Windows NT могут понадобиться некоторые изменения в их
текстах.
Программы, запускаемые командной строкой Из форм
удобнее всего обращаться к программам, запускаемым командной
строкой, поскольку они вызываются напрямую, а не в виде
параметра для интерпретатора типа sh.exe или perl.exe.
Недостаток такого подхода заключается лишь в необходимости
написать и скомпилировать полноценное приложение. Такие
программы должны полностью управляться из командной строки,
это не могут быть графические программы Windows или системные
сервисы.
Что дальше Теперь вы знаете по меньшей мере о
пяти HTTP-серверах, которые могут работать в среде Windows.
Каждый из них может использоваться в качестве «сердца»
коммерческого web-узла. Волна популярности Windows вместе с
растущей надежностью операционной системы Windows NT
делает выбор одного из предназначенных для нее HTTP-серверов
весьма привлекательным, несмотря на то, что UNIX-системы
прошли гораздо более серьезную проверку временем. Если ни один
из описанных в этой главе вариантов вам не подходит,
оглядитесь вокруг, и вы наверняка найдете еще несколько
HTTP-серверов для Windows и Windows NT. Кроме того,
технология World Wide Web развивается с такой скоростью, что
ко времени выхода этой книги наверняка появятся новые версии
описанных здесь серверов. Узнайте у их производителей самые
свежие данные об их цене и новых возможностях.
Хотя мы закончили знакомство с публикациями в Internet,
приведенные сведения ни в коей мере не претендуют на
абсолютную полноту. По мере практического знакомства с World
Wide Web вы будете находить все новые возможности и средства
web-публикаций. Используйте огромный потенциал
Internet-публикаций - и будете вознаграждены. Следующий ход -
за вами, ведь весь мир World Wide Web находится у вас под
рукой - всего лишь на расстоянии гиперссылки.
Содержание
| Далее |