Организация доступа к базам данных в Интернет
Исходный каталог документов
Это каталог реальной файловой системы сервера, от которого идет вычисление пути, указанного в URL. Например, если исходным каталогом документов является D:WWW, то на запрос к этому серверу документа по URL
<имя_сервера>/index.htm
будет возвращен файл
D:WWWindex.htm
Синонимы
В случае, когда необходимо осуществить обращение к конкретному каталогу или файлу, находящемуся вне иерархии Исходного каталога документов, используется механизм синонимов. Синоним позволяет явно определить соответствие между путем, указанным в URL, и путем локальной файловой системы.
Например:
Синонимом для /Harvest объявляется /projects/www/harvest или
синонимом для /test/myfile.html объявляется C:MYDIRFILE.HTM
В первом случае все обращения к файлам каталога /Harvest будут обрабатываться в каталоге /projects/www/harvest. Второй пример показывает работу синонима с конкретным файлом файловой системы.
Индексный файл
Для каждого сервера определено имя так называемого индексного файла. Обычно этот файл содержит ссылки на другие файлы данного каталога. Содержимое индексного файла выдается сервером в случае, если в URL указан каталог без конкретного файла.
Пользовательский раздел
Для многопользовательских операционных систем (таких как Unix) ПО WWW - сервера позволяет каждому пользователю предоставлять доступ к своему собственному набору гипертекстовых документов вне основной иерархии (Исходного каталога документов, Синонимов и т.д.). Этот набор документов должен находиться в собственном (т.н. "домашнем") каталоге пользователя. Для доступа к таким документам в URL перед путем ставится знак тильда и имя пользователя: ~<имя_пользователя>.
Например:
На сервере Indy.cnit.nsu создан пользователь с именем fancy и "домашним" каталогом /home/fancy. Собственные гипертекстовые документы он хранит в каталоге /home/fancy/public_html. При обращении по URL Indy.cnit.nsu/~fancy/start.html, WWW - сервер будет искать документ start.html в каталоге /home/fancy/public_html.
2.1.3 Протокол MIME
Протокол MIME - многоцелевое расширение электронной почты, был создан как способ передачи нетекстовой информации: изображений, звука, видео в письмах электронной почты. Механизм оказался удачным, и его перенесли и в on-line сервисы, в том числе WWW. Здесь MIME используется для передачи документов от сервера к клиенту.
В общем виде MIME основывается на передаче вместе с основными данными дополнительной информации, описывающей что это и в каком виде передается. Эта дополнительная информация называется заголовок MIME. Базовой частью заголовка является строка, описывающая тип передаваемого сообщения. Формат строки:
Content-Type: <тип_MIME>
Перечень типов MIME (т.е. видов передаваемых данных) постоянно пополняется и может быть дополнен даже пользователем для описания своего собственного вида данных. Формат типа MIME:
<Тип> / <Подтип> [ ; <параметры> ]
Где <Тип> - определяет общий тип данных:
Audio - для звуковых данных
Application - данные, являющиеся входными для какого-либо приложения (программы)
Image - для графических образов
Message - для сообщения, которое само по себе является MIME - документом
Multipart - для сообщения, состоящего из нескольких MIME - документов
Text - для текстовых данных в различном виде
Video - для видеоданных.
<Подтип> - указывает на специфический формат данных типа <Тип>
Например:
text/html - текстовые данные в формате HTML
image/giff - графические данные в формате gifF
<Параметры> - список параметров, необходимых для интерпретации данных.
Для ведения специфичной обработки файлов различных типов и форматов на клиентской и серверной частях поддерживаются списки соответствий типов MIME и расширений файлов. Формат записи такого списка:
<Тип>/<Подтип> <расширение1> ... <расширениеN>
Эти списки сопоставляют всем файлам, имеющим определенные расширения, определенные типы MIME.
Например:
image/giff gif giff
text/html html htm
В первой строке всем файлам с расширением gif и giff приписывается тип содержимого image/giff. Если для типа содержимого image/giff определены специальные правила обработки (например, отображение на экране в определенной области), то так будут обрабатываться все файлы с расширениями gif и giff.
2.1.4 Протокол HTTP
Протокол HTTP определяет язык запросов от WWW - клиента к WWW - серверу. Сам запрос состоит из следующих компонент:
<Заголовок>
<Метод> <Источник / Данные>
где
Заголовок - определяет версию протокола HTTP и другие служебные параметры;
Метод - одно из ключевых слов:
GET - для передачи запросов на выдачу документов
PUT, POST - для передачи данных от клиента к серверу (например, из форм)
Пример запроса:
HTTP/1.1
GET /index.html
Описывает запрос на получение файла index.html из корневого каталога документов сервера.
2.1.5 Интерфейс CGI
Помимо доступа к статическим документам сервера существует возможность получения документов как результата выполнения прикладной программы. Такая возможность реализуется на сервере WWW благодаря использованию интерфейса CGI (Common Gateway Interface). Спецификация CGI описывает формат и правила обмена данными между ПО WWW сервера и запускаемой программой.
Для инициирования CGI необходимо, чтобы в запрашиваемом URL был указан путь до запускаемой программы. ПО WWW сервера исполняет эту программу, передает ей входные параметры и возвращает результаты ее работы, как результат обработки запроса, клиенту. CGI - программой может являться любая программа локальной операционной системы сервера - в двоичном виде или в виде программы для интерпретатора (Basic, SH, Perl и т.д.).
С целью облегчения администрирования CGI - программ, а также для удовлетворения требованиям безопасности CGI - программы группируются в одном или нескольких явно указанных серверу каталогах. По умолчанию это каталог cgi-bin в иерархии серверных каталогов, однако, его имя и положение могут отличаться.
Например:
клиент, обращающийся к CGI - программе test-query, будет использовать URL <имя_сервера>/cgi-bin/test-query
Интерфейс CGI позволяет расширить границы применения WWW - технологии. CGI - программа может обрабатывать сигналы с датчиков установок, взаимодействовать с мощным сервером баз данных, переводить и т.п. Полное описание интерфейса и требований к приложениям, использующих его, приведены в главе 4 настоящего отчета.
2.2. Web-сервера ApacheApache - самый распространенный Web-сервер в мире. По данным компании Netcraft (15) общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape - 7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же Unix-систем (FreeBCD, Linux и др.), Apache по функциональным возможностям и надежности не уступает коммерческим серверам, а широкие возможности конфигурирования позволяют настроить его для работы практически с любой конкретной системой. Существуют локализации сервера для различных языков, в том числе и для русского.
Сервер Apache имеет небольшой, но представительный набор примеров приложений, однако в его составе отсутствует хорошая документация. Продукт Apache обладает многими встроенными функциями, но поскольку объем его документации невелик, понять, как им пользоваться довольно трудно. Вследствие этого работа с сервером требует больших дополнительных затрат: получаемый бесплатно, он становится дорогим, когда вы хотите раздвинуть границы его применения.
Характеристика
Компания - The Apache Group
Продукт - Apache Web Server 1.3.14
Операционная система - OS/2, Unix, Windows, BeOS
Тип процессора - Alpha, Intel 80486, Pentium, Pentium Pro, PowerPC
Требования к памяти - ОЗУ 32 МБ
Функции регистрации:
формат CERN - нет
формат NCSA - есть
автоматическое архивирование - нет
регистрация производительности - есть
использование браузеров - есть
отчеты об использовании - нет
Защита - SHTTP, SSL
API и средства написания сценариев - Basic, CGI, JavaScript API, Java (если при компиляции были внесены изменения и добавлены модули продукта JServ )
Специальные функции:
SMP - есть
конференцсвязь - есть
передача полномочий другому Web-серверу - есть
сервер новостей - нет.
Многие Web-мастера и сетевые администраторы настроили серверы Apache под свои нужды благодаря их преимуществу - сравнительно простой архитектуре.
2.2.1 Установка WEB-сервера Apache
Начнем с того, что серверов существует множество - плохие и хорошие, медленные и быстрые... Я же выбрал сервер, подходящий под последние две категории, - Apache. Самое главное то, что это чуть ли не единственный сервер, который позволяет работать в Windows 95/98/NT с технологиями PHP, CGI и Perl-скриптами одновременно так же просто и непринужденно, как будто он стоит на Unix.
Итак, установить на компьютер Apache для Windows 95/98/NT довольно просто при наличии дистрибутива сервера. В противном случае следует запастись терпением и скачать дистрибутив сервера - файл apache_1_3_14_win32_r2.exe (3 176 975 байт) (13). Теперь самое интересное - настройка Apache.
Важно: просьба в точности выполнять перечисленные ниже шаги, не пропуская и не откладывая ни одного из действий. В этом случае все заработает - это проверено.
Этап первый - установка
Нужно определиться с директорией, в которую будете устанавливать Apache. Все дальнейшие рассуждения основаны на том, что выбран для этой цели такой каталог: f:usrlocalapache . Если диска F: нет, или если неохота его захламлять, советую сделать одно из трех:
1) Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например, с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с такими файлами.
2) Сделайте виртуальный диск F:. Для этого нужно создайть где-нибудь на любом диске директорию, которая в будущем будет являться корневой для диска F:. Предположим, выбран C:INTERNET. Далее, в начале файла c:autoexec.bat в нем прописывается такая строка:
subst f: C:INTERNET
и после чего нужно перезагрузить компьютер. Должен появиться виртуальный пустой диск F:.
ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в результате которой иногда subst-пути "сами по себе" преобразуются в абсолютные. То есть, например, иногда в рассмотренном выше примере команды f: cd cd dir
(а точнее, команда dir в своем заголовке) ошибочно выведут, что текущая директория C: (а не F:, как это должно быть). Указанная ошибка чаще всего проявляется в неработоспособности Perl-транслятора. Так что лично я не рекомендую использовать subst. Вместо этого воспользоваться пунктом 1.
3) Наконец, можно всего этого не делать и поставить Apache на любой другой диск, только тогда придется немного тяжелее при выполнении всех остальных действий. Нужно будет все указываемые пути заменять на собственные, а это крайне неприятно. Еще раз настоятельно рекомендую воспользоваться диском F:.
Рекомендую все же разместить Apache в указанном в начале каталоге.
Запускаем только что скачанный файл. В появившемся диалоге нажимаем кнопку Yes, а затем - кнопку Next.
Теперь нужно вручную задать директорию для установки: f:usrlocalapache и нажимаем кнопку OK.
Выбираем тип установки - Сustom и убираем флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим можно сэкономить себе 3 Мбайта.
Нажимаем Next и ждем, пока будут копироваться файлы Apache.
На запрос о перезагрузке компьютера нужно ответить утвердительно "Перезагрузить".
После всех манипуляций можно вздохнуть с облегчением - Apache установлен! Ну после этого самое неприятное - его настройка.
2.2.2 Настройка WEB-сервера Apache
Настройка файла конфигурации Apache mime.types
Для этого нужно открыть директорию f:usrlocalapacheconf. Открыть для редактирования находящийся там файл mime.types.
Найти в нем такую строчку:
text/html html htm
Изменить ее на
text/html html htm shtml shtm sht
Следует заметить, что если по каким-то причинам не нужно портить файл mime.types, то можно вместо этого прописать в файле httpd.conf (см. ниже) строки вида
AddType text/html html htm shtml shtm sht
Этап третий - настройка файла httpd.conf
Внимание! Это - самый ответственный момент установки. Просьба соблюдать инструкции БУКВАЛЬНО.
Откройте директорию f:usrlocalapacheconf. Откройте находящийся там файл httpd.conf. Это - единственный файл, который осталось настроить. Предстоит найти и изменить в нем некоторые строки, а именно те, о которых упоминается далее. Во избежание недоразумений не нужно трогать все остальное. Следует заметить, что в нем каждый параметр сопровождается несколькими строками комментариев, разобраться в которых с первого раза довольно тяжело. Поэтому на них можно не обращать внимание.
В поле ServerAdmin нужно указать E-mail адрес, который будет показываться в сообщениях об ошибке сервера. Например:
ServerAdmin my@email
В поле ServerName нужно указать имя сервера, например:
ServerName www.real.ulan-ude
И обязательно нужно раскомментировать поле ServerName, то есть убрать символ "#" перед этим параметром (по умолчанию он закомментирован)!
В поле DocumentRoot указывается директория, в которой будут храниться html-файлы, например:
DocumentRoot f:/www
Разумеется, можно указать и любую другую директорию. В любом случае, ее нужно создать, лучше сделайте это прямо сейчас!
Далее нужно найти блок, начинающийся строкой <Directory /> и заканчивающийся </Directory> (вообще, такие блоки обозначают установки для заданной директории и всех ее поддиректорий). Его нужно изменить на:
<Directory />
Options Indexes Includes
AllowOverride All
</Directory>
Дириктивы, примененные в секции<Directory>, имеют следующее значение:
Optinos [options...]
Возможное значение параметров:
ExecCGI - разрешить выполнение CGI-сценариев в данном катологе и его подкаталогах;
FollowSymLinks - разрешить переход по символическим ссылкам (созданным командой lh);
Include - разрешить SSI (Server Side Includes);
Indexes - разрешить выдачу листинга каталога, если в нем нет файла index.html (или файла индекса, заданного дериктивой DirectoryIndex);
MultiVews - разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно; поддержка перекодирования "на лету" для русского языка устанавливается с помощью других директив;
All - установить сразу все перечисленные режимы кроме MultiViews.
AllowOverride [options...]
Параметры могут быть указаны следующие:
AuthConfig - разрешить установку авторизации по имени пользователя и паролю;
FileInfo - разрешить директивы, отвечающие за типы документов;
Indexes - резрешить директивы, связанные с листингом каталогов;
Limit - разрешить команды allow и deny, которые ограничивают доступ к файлам в зависимости от адреса клиентского компьютера;
Options - разрешить описанные выше директивы Options.
Таким образом, в этом блоке будут храниться установки для всех директорий по умолчанию (т.к. это - корневая директория).
После чего нужно найти аналогичный блок, начинающийся <Directory "f:/usr/local/apache/htdocs"> и заканчивающийся </Directory>. Там будет много комментариев, на них можно не обращать внимание. Этот блок следует заменить на:
<Directory "f:/www">
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Это - установки для директории с html-документами. Можно, конечно, установить другую директорию, главное, чтобы она совпадала с той, которая прописана в параметре DocumentRoot
Идем дальше. Установим UserDir, например так:
UserDir f:/www/users
Это будет директория, в которой будут храниться домашние страницы пользователей, а также корневые каталоги виртуальных хостов (см. ниже).
DirectoryIndex устанавливается так:
DirectoryIndex index.htm index.html
Это - так называемые файлы индекса, которые автоматически выдаются сервером при обращении к какой-либо директории, если не указано имя html-документа. В принципе, можно добавить сюда и другие имена, например, index.phtml, если вы будете работать с PHP и т.д.
Найдите и пропишите такой параметр:
ScriptAlias /cgi-bin/ "f:/www/cgi-bin/"
Да, именно так, с двумя слэшами. Это будет та директория, в которой должны храниться CGI-скрипты. Если хотите, можете задать другое имя, например:
ScriptAlias /mycgi/ "f:/mycgidir/"
Подобный параметр говорит Apache о том, что, если будет указан путь вида real.ulan-ude/cgi-bin, то на самом деле следует обратиться к директории f:/www/cgi-bin.
Теперь следует найти и настроить блок параметров, начинающийся с <Directory "f:/www/cgi-bin"> и заканчивающийся </Directory>. Это - установки для CGI-директории (если был установлен для нее другой путь на предыдущем шаге, соответственно модифицируйте путь). Там должно быть:
<Directory "f:/www/cgi-bin">