Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Как работает CGI программа



CGI программа всегда размещается на диске сервера до ее выполнения. Web - сервер требует размещения CGI - приложения в директорию cgi-bin, однако системный администратор может выделить вам и другой каталог. Простейший способ вызова CGI программы состоит в указании броузеру URL этой программы. Например, если вы хотите выполнить программу test.pl на локальном web - сервере, вы должны ввести URL: http://localhost/cgi-bin/test.pl. Здесь cgi-bin представляет относительный адрес, к которому может добавляться остальной путь, напрмер: /usr/local/etc/httpd/cgi-bin/test.pl или /website/cgi-shl/test.pl.

Есть и другой способ вызова CGI программы. Вы можете поставить гиперссылку, например на кнопку формы

<A HREF="cgi-bin/test.pl">Click here to run a CGI program</A>

Информацию для CGI программы можно передать, добавляя ее к стандартному URL. Например <A HREF="cgi-bin/search.pl/root/document"> Search the Document Directory</A>

Информация о пути доступна через переменную окружения PATH_INFO.

Для поиска может быть использован знак вопроса

<A HREF="cgi-bin/search.pl?Wine+1993">Search for 1993 Wines</A>

Информация после знака вопроса доступна через переменную окружения QUERY_STRING.

Приведем пример простейшей CGI программы:

#!/usr/local/bin/perl -w

use strict;

print "Content-type: text/plain\n\n";

print "Hello, World.\n";

Файл test.pl с этой программой помещается в каталог cgi-bin web сервера. Затем задается URL вида: http://localhost/cgi-bin/test.pl

Результат: Hello, World.

При выполнении CGI программы автоматически открываются стандартные файлы STDIN - ввода информации из HTML формы, STDOUT - вывода в окно броузера, STDERR - вывода сообщений в log - файл сервера.

Первая строка вывода для CGI программы должна содержать заголовок HTTP, который сообщает броузеру клиента какой тип сообщения будет послан на STDOUT: print("Content Type: text/html\n\n");

Могут быть другие заголовки, например Location определяет какую из страниц открыть: print("Location: $nextPage\n\n");

CGI и переменные окружения

Переменные окружения доступны CGI программе через переменную %ENV. Могут использоваться следующие переменные окружения:

CONTENT_LENGTH - содержит длину записи, передаваемой скрипту через STDIN файл. Используется в методе POST.

CONTENT_TYPE - содержит тип данных, доступных через STDIN.

HTTP_ACCEPT - содержит лист MIME типов программ броузера

HTTP_USER_AGENT - тип броузера пользователя

HTTP_FROM - содержит email адрес пользователя.

PATH_TRANSTLATED - путь к скрипту

REMOTE_ADDR - числовой адрес пользователя

REMOTE_HOST - имя домена сайта из которого коннектится пользователь.

REMOTE_USER - имя пользователя.

REQUEST_METHOD - содержит метод "GET" или "POST"

SCRIPT_NAME - путь к скрипту.

SERVER_NAME имя хоста сервера.

SERVER_PORT -содержит прослушиваемый порт, стандартно 80.

SERVER_PROTOCOL имя протокола сервера.





Дата публикования: 2014-11-18; Прочитано: 352 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...