Создание Web-страниц. Гайсина Л.Ф. - 66 стр.

UptoLike

Составители: 

Обычно гипертекстовые документы, извлекаемые из WWW серверов,
содержат статические данные. С помощью CGI можно создавать CGI-
программы, называемые шлюзами, которые во взаимодействии с такими
прикладными системами, как система управления базой данных, электронная
таблица, деловая графика и др., смогут выдать на экран пользователя
динамическую информацию.
Программа-шлюз запускается WWW сервером в реальном масштабе
времени. WWW сервер обеспечивает передачу запроса пользователя шлюзу, а
она, в свою очередь, используя средства прикладной системы, возвращает
результат обработки запроса на экран пользователя. Программа-шлюз может
быть закодирована на языках C/C++, Fortran, Perl, TCL, Unix Schell, Visual
Basic, Apple Script. Как выполнимый модуль, она записывается в
поддиректорий с именем cgi-bin WWW сервера. Работа:
1) Передача данных шлюзам. Для передачи данных об информационном
запросе от сервера к шлюзу, сервер использует командную строку и
переменные окружения. Эти переменные окружения устанавливаются в тот
момент, когда сервер выполняет программу шлюза.
2) Запросы для различных методов. Информация шлюзам передается в
следующей форме:
имя=значение&имя1=значение1&..,
где имя- имя переменной (из оператора FORM, например), и значение - ее
реальное значение. В зависимости от метода, который используется для
запроса, эта строка появляется или как часть URL (в случае метода GET), или
как содержимое HTTP запроса (метод POST). В последнем случае, эта
информация будет послана шлюзу в стандартный поток ввода. На файловый
дескриптор стандартного потока ввода посылается CONTENT_LENGTH байт.
Так же сервер передает шлюзу CONTENT_TYPE (тип передаваемых данных).
Сервер не обязан посылать символ конца файла после отсылки
CONTENT_LENGTH байт данных и после того, как шлюз их прочитает.
Пример: Возьмем результат работы формы с методом POST
(METHOD="POST") в качестве примера. Пусть получено 7 байт,
закодированных примерно так:
a=b&b=c.
В этом случае, сервер установит значение CONTENT_LENGTH равным 7
и CONTENT_TYPE в application/x-www-form-urlencoded. Первым символом в
стандартном потоке ввода для шлюза будет "a", за которым будет следовать
остаток закодированной строки.
3) Аргументы командной строки. Шлюз в командной строке от сервера
получает:
- остаток URL после имени шлюза в качестве первого параметра
(первый параметр будет пуст, если присутствовало только имя шлюза), и
- список ключевых слов в качестве остатка командной строки для
скрипта поиска, или
65
      Обычно гипертекстовые документы, извлекаемые из WWW серверов,
содержат статические данные. С помощью CGI можно создавать CGI-
программы, называемые шлюзами, которые во взаимодействии с такими
прикладными системами, как система управления базой данных, электронная
таблица, деловая графика и др., смогут выдать на экран пользователя
динамическую информацию.
      Программа-шлюз запускается WWW сервером в реальном масштабе
времени. WWW сервер обеспечивает передачу запроса пользователя шлюзу, а
она, в свою очередь, используя средства прикладной системы, возвращает
результат обработки запроса на экран пользователя. Программа-шлюз может
быть закодирована на языках C/C++, Fortran, Perl, TCL, Unix Schell, Visual
Basic, Apple Script. Как выполнимый модуль, она записывается в
поддиректорий с именем cgi-bin WWW сервера. Работа:
      1) Передача данных шлюзам. Для передачи данных об информационном
запросе от сервера к шлюзу, сервер использует командную строку и
переменные окружения. Эти переменные окружения устанавливаются в тот
момент, когда сервер выполняет программу шлюза.
      2) Запросы для различных методов. Информация шлюзам передается в
следующей форме:
      имя=значение&имя1=значение1&..,
      где имя- имя переменной (из оператора FORM, например), и значение - ее
реальное значение. В зависимости от метода, который используется для
запроса, эта строка появляется или как часть URL (в случае метода GET), или
как содержимое HTTP запроса (метод POST). В последнем случае, эта
информация будет послана шлюзу в стандартный поток ввода. На файловый
дескриптор стандартного потока ввода посылается CONTENT_LENGTH байт.
Так же сервер передает шлюзу CONTENT_TYPE (тип передаваемых данных).
Сервер не обязан посылать символ конца файла после отсылки
CONTENT_LENGTH байт данных и после того, как шлюз их прочитает.
      Пример: Возьмем результат работы формы с методом POST
(METHOD="POST") в качестве примера. Пусть получено 7 байт,
закодированных                          примерно                       так:
a=b&b=c.
      В этом случае, сервер установит значение CONTENT_LENGTH равным 7
и CONTENT_TYPE в application/x-www-form-urlencoded. Первым символом в
стандартном потоке ввода для шлюза будет "a", за которым будет следовать
остаток закодированной строки.
      3) Аргументы командной строки. Шлюз в командной строке от сервера
получает:
      - остаток URL после имени шлюза в качестве первого параметра
(первый параметр будет пуст, если присутствовало только имя шлюза), и
      - список ключевых слов в качестве остатка командной строки для
скрипта поиска, или


                                                                          65