Введение в CGI


Скрипты для обработки нестандартных методов доступа


Для того, чтобы обработать метод доступа, отличный от GET или POST , необходимо выполнить несколько условий: подготовить скрипт для обработки данного метода, настроить сервер и определить соответствующие права доступа к каталогам, с которыми этот скрипт будет работать. Рассмотрим как это делается на примере обработки запроса по методу PUT.

Некоторые серверы , например IIS компании Microsoft, имеют встроенные модули для работы с методом PUT. Сервер Apache такого модуля в стандартной комплектации не имеет, но позволяет подключить скрипт для обработки запросов по методу PUT.

Сама программа обработки таких запросов может выглядеть следующим образом:

#!/usr/local/bin/perl if($ENV{REQUEST_METHOD} ne "PUT") { die "Content-type: text/plain\n\nМетод доступа не PUT"; } $fname=$ENV{PATH_TRANSLATED}; if(!$fname) { die "Content-type: text/plain\n\nНе указана мишень вывода"; } $length=$ENV{CONTENT_LENGTH}; if(!$length) { die "Content-type: text/plain\n\nСтраница имеет нулевой размер"; } read(STDIN,$page,$length); open(OUT,">$fname"); print OUT $page; close(OUT); print "Content-type: text/plain\n\nДанные получены.";

Листинг 24.1.

(html, txt)

Первый оператор if проверяет метод доступа, второй — адрес страницы, которую следует разместить, третий — наличие самих данных для размещения по адресу страницы. Проверок для полной уверенности в передаче данных на самом деле нужно выполнить несколько больше. Кроме того, требуется сгенерировать код возврата и запись в журнал посещений, чтобы этот пример стал реально действующей программой. Теперь нужно настроить сервер . Для этого в файле конфигурации сервера httpd.conf следует указать:

Script PUT cgi-сценарий

Здесь cgi-сценарий — это имя нашего скрипта.

После этого для нашего сценария, а, точнее, для пользователя, от которого он запускается, нужно разрешить запись данных в каталог размещения страниц и, если это необходимо, внести изменения в файлы настройки процедуры аутентификации.



Содержание раздела