Книга VII - Miracle Web Server.

  Web Сервер системы Miracle является, наверное, одним из самых маленьких, но при этом достаточно функциональным. Поддерживается протокол HTTP/1.0, некоторые расширения протокола HTTP/1.1 (например, докачка), CGI, Miracle, Cookie и метод POST в CGI и Miracle.

Не поддерживается SSL.

Частичная поддержка SSI. Сервер состоит из одного исполняемого модуля - MirWeb.exe, который можно запускать из любого каталога, указав в качестве рабочего тот, где расположены файлы HTML. Там-же (если не задано иного в файле инициализации) создается файл MirWeb.log, в котором отражается протокол запросов на сервере в формате CSV. Если файл инициализации не задан в командной строке, то он ищется тоже там.

SSI

  Имеется поддержка замены подстрок вида '<!--#include file=' на содержимое указанных в них файлов (относительно рабочего каталога Web сервера). Так-же можно задать строку '<!--#include virtual=', отличие которой от file заключается в том, что файл ищется относительно текущей страницы.

CGI

  Поддержка CGI осуществляется очень просто - достаточно просто сделать автоматическую ассоциацию расширения файла с требуемым приложением.
   Если файл является запускаемым (например EXE или BAT), то он будет запущен непосредственно. Проверена работа таких распространенных интерпретаторов скриптов, как Perl и PHP.

Miracle.

  Сервер осуществляет поддержку виртуальных страниц, созданных не только через CGI, но и с помощью специальных объектов системы Miracle.
  Работа Web Сервера системы Miracle обеспечивает взаимодействие с miracle-приложениями по следующей схеме.
  Каждое запущенное miracle-приложение имеющего компонент взаимодействия с Web сервером, устанавливает связь с сервером. Если в рамках настройки компонента установлен флаг - "Публиковать", то данное приложение будет доступно для по адресу: "http://<адрес к Web серверу>/miracle/". Если флаг не установлен, то доступ к страничке создоваемое активным приложением, будет доступен только через явно указание ссылки. Обычно это служит для организации набора виртуальных страниц с поддержкой переходов.


Следует помнить, что наличие файлов в директории miracle/ "footer.htl" и "header.htl", задают стиль оформления страницы содержащей активный список доступных виртуальных WEB-страниц обеспечиваемых запущенными miracle-приложениями. Структура данных файлов должна быть согласована таким образом, что бы фрагменты html кода общей страницы обеспечивала необходимую структуру заголовка страницы - "footer.htl", наполнение, генерируемое автоматически Web сервером, а так же окончание страницы - "header.htl".

  Обработка запросов между Web сервером и miracle-программой строиться следующим образом:

  1. Запущенное miracle-приложение имеющего компонент взаимодействия с Web сервером, регистрирует виртуальную страничку описанную в компоненте. Если страница предназначена для публикации, то Web сервер перегенерирует "список приложений".

  2. Если происходит запрос к "виртуальной страничке", то Web сервер обращается к соответствующей miracle-программе. Если приложение "не отвечает", например оно обрабатывает предыдущее обращение, то сервер организует очередь.
    Если запущено несколько копий этой miracle-программы, то сервер пытается передать запрос первой "свободной" из них. Если этого не удается, то организуется очередь.

  3. Приложение, получившее запрос от Web сервера должно подготовить "ответ".
    Т.е. в рамках miracle-программы возникает событие "Поступил GET(/par)/POST запрос от Web сервера.", Web сервер начинает ждать ответа от программы и до этого момента считает данную копию приложения "занятой".

  4. Приложение осуществляет подготовку ответа. Например: заполненяет информацией структуру странички из базы данных и т.п.
    Далее приложение должно "Отправить ответ - ошибку/ответ для Web сервера", либо осуществить перенаправление на другой адрес (web страничку).

  5. Web сервер получив ответ от miracle-программы, считает данную копию доступной для нового запроса, если была очередь, то передает новый запрос к программе.
    А так же осуществляет отправку подготовленного ответа пользователю в Сети.

  6. Если в рамках настройки компонента "Взаимодействие с Web Server", установлен флаг #inclide, то пред отправкой ответа, сервер организовывает формирование дополнений в структуру web страницы подготовленной miracle-программой. Что приводит к замедлению отправки ответа, однако позволяет осуществлять "компиляцию" полной структуры ответа на уровне Web-сервера, через внедрение части html кода имеющихся на Web сервере.

Предыдущий раздел
На начал документауции

©1995,1997,2000 НПФ ”И.В.А.”. Все права сохранены.
Название фирм и торговых марок используются только в качестве пояснения.