Small HTTP сервер


Как ...?

-- Да очень просто -- распаковывайте с сохранением дерева каталогов, запускайте srv.exe и все ! Если Ваш браузер не настроен на работу через прокси, то даже не входя в сеть вы можете сами сходить на свой сайт используя стандартный IP-адрес http://127.0.0.1/. Если у вас нет собственного DNS-имени, это не страшно. Любой пользователь может попасть ваш сайт используя Ваш IP адрес. Указывайте его при регистрации на поисковых серверах.


Коталоги и имена файлов.

Сервер поддерживает определенные имена каталогов. Так Ваш сайт начинается с подкаталога WWW. Файлы могут передаваться только из этого каталога и из всех вложенных в него каталогов, кроме WWW/CGI-BIN/ Предполагается, что в каталоге WWW/CGI-BIN/ находятся исполняемые CGI-скрипты, и при получении запроса на файл из WWW/CGI-BIN/ сервер пытается его запустить. При этом если файл имеет расширение *.pl то запускается Perl-интерпретатор, который должен быть либо в PATH-е, либо в том же каталоге, что и сервер. Например если Вы распаковали программу в каталог С:\HTTP то по вашему IP-адресу можно будет забирать файлы из каталога C:\HTTP\WWW т.е. http://127.0.0.1/test.htm==C:\HTTP\WWW\test.htm. А CGI в этом случае запускаются из C:\HTTP\WWW\CGI-BIN\ Если Вы создали в каталоге WWW подкаталог WWW\IMAGES и записали туда файл bgr.gif то получить его можно http://127.0.0.1/images/bgr.gif и т.д. В любом случае, если имя файла не задано, т.е. запрос кончается на '/' то сервер автоматически подставляет index.htm сохраняя структуру каталогов. Так http://127.0.0.1/My/ эквивалентно http://127.0.0.1/My/index.htm
Сервер определяет тип файла по расширению. Поддерживаются следующие типы:
  • *.htm,*.html - text/html
  • *.txt - text/plain
  • *.gif - image/gif
  • *.jpg,jpeg - image/jpeg Во всех остальных случаях сервер возвращает */* на, что браузер клиента как правило предлагает сохранить файл на диске.


    Запуск скриптов.

    Как уже говорилось, скрипты запускаются из поддиректории WWW/CGI-BIN/ При этом поддерживается интерфейс CGI/1.0 подробное описание которого можно найти например на http://Web.Golux.Com/coar/cgi/ При запуске строка запроса передается как в командной строке так и в переменной окружения QUERY_STRING. После запуска выходной поток скрипта напрямую транслируется пользователю приславшему запрос. Скрипт, обязательно должен выдавать строку Content-Type: тип\r\n.Также могут следовать другие служебные строки, например Content-Length: xx\r\n или Date: Завершается служебная информация последовательностью \r\n\r\n. Если вы пишите на Си или Перле то обратите внимание на то, что функции вывода в тестовом режиме сами преобразуют символ \n в последовательность \r\n. На Паскале функция writeln завершает вывод этими символами.


    << Назад Содержание Далее >>