Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Common Gateway Interface - средство расширения возможностей World Wide Web

Common Gateway Interface - средство расширения возможностей World Wide Web технологии

Механизмы обмена данными Список переменных окружения Применение CGI-скриптов Примеры SHELL-скриптов Пример С-программы Доступ к базе данных под управлением Ingres Примеры скриптов Пример интерфейсной формы Результат выполнения скрипта Организация стека графических ссылок

Главное назначение Common Gateway Interface - обеспечение единообразного потока данных между сервером и прикладной программой, которая запускается из-под сервера

CGI-скрипт - программа написанная в соответствии со спецификацией Common Gateway Interface. CGI-скрипты могут быть написаны на любом языке программирования (C, C++, PASCAL, FORTRAN и т. п.) или командном языке (shell, cshell, командный язык MS-DOS, Perl и т. п.). Скрипт может быть написан даже на языке редактора EMAC в системах Unix

Шлюз - это CGI-скрипт, который используется для обмена данными с другими информационными ресурсами Internet или приложениями-демонами. Обычная CGI- программа запускается сервером HTTP для выполнения некоторой работы, возвращает результаты серверу и завершает свое выполнение Механизмы обмена данными переменные окружения формат командной строки формат стандартного ввода формат стандартного вывода Список переменных окружения

К общим переменным окружения относятся: SERVER_SOFTWARE - определяет имя и версию сервера SERVER_NAME - определяет доменное имя сервера GATEWAY_INTERFACE - определяет версию интерфейса

К запрос-ориентированным относятся: SERVER_PROTOCOL - протокол сервера SERVER_PORT - определяет порт TCP, по которому осуществляется взаимодействие (80 порт) REQUEST_METHOD - определяет метод доступа к информационному ресурсу PATH_INFO - передает программе путь (адрес скрипта) в виде, указанном в HTML-документе PATH_TRANSLATED - то же, что и PATH_INFO, но только после подстановки сервером определенных в его конфигурации вставок SCRIPT_NAME - определяет адрес скрипта так, как он указан клиентом QUERY_STRING - определяет содержание запроса к скрипту

Идентификация пользователя и его машины: REMOTE_HOST - доменный адрес машины, с которой осуществляется запрос REMOTE_ADDR - IP-адрес запрашивающей машины AUTH_TYPE - тип идентификации пользователя REMOTE_USER - идентификация пользователя REMOTE_IDENT - устанавливается сервером; предназначена для первоначального использования скрипта CONTENT_TYPE - определяет MIME-тип данных, передаваемых скрипту CONTENT_LENGTH - определяет размер данных в байтах, которые передаются скрипту

Стандартный ввод CGI-скрипта Методы GET или Post CONTENT-LENGHT CONTENT-TYPE QUERY-STRING

Стандартный вывод CGI-скрипта Заголовок CONTENT-TYPE Location Status Тело ответа (обычно текст) Применение CGI-скриптов Простейшие SHELL-скрипты Вызов внешней программы через SHELL Вызов модуля "С" Доступ к базам данных Imagemap

Примеры SHELL-скриптов #!/bin/sh echo Content-type: text/plain echo echo This is the result of script execution. #The end of script #!/bin/sh echo Content-type: text/plain echo echo $REQUEST_METHOD echo $QUERY_STRING echo $CONTENT_TYPE echo $CONTENT_LENGTH #The end of script. #!/bin/sh echo Content-type: text/plain echo finger paul@polyn.kiae.su #The end of script. Пример С-программы #include <stdlib.h>; #include <sys/types.h>; main() { long i,n,uid; char input_ch[1024]; char *env;
env = getenv("CONTENT_LENGTH"); /* Here we recieve a length */ sscanf(env,"%d",&n); /* of input stream and form */ for(i=0;i<;n;i++) /* command line */ { input_ch[i] = getchar(); } input_ch[i] = '00'; printf("Content-type: text/htmlnn"); /* First message of a CGI Programme */ /* This message must be a first one */ /* in output sream. */
printf("<TITLE> C-cgi script.(example#1)</TITLE>n"); printf("<H3><I> Russian Research Center "Kurchatov Institute" <I></H3>n"); c_uid = -1; sscanf(input_ch,"uid=%ld",&uid); /* Transform input data */ printf("Input Nuber:%ld.<BR><HR>",uid); exit(0); } Доступ к базе данных под управлением Ingres Простой вызов постоянного запроса Форматирование вывода Запрос через Query-String Фильтрация Примеры скриптов #!/bin/sh echo Content-type: text/plain echo ingres polyn < query #The end of script #!/bin/sh echo Content-type: text/plain echo helpr polyn #The end of script
#!/bin/sh echo Content-type: text/html echo echo '< PRE> ' helpr polyn situat echo '< /PRE> ' #The end of script
#!/bin/sh echo Content-type: text/html echo echo '< PRE> ' echo $QUERY_STRING | tr "+" " " | ingres polyn echo '< /PRE> ' #The end of script
#!/bin/sh echo Content-type: text/html echo echo '< PRE> ' echo $QUERY_STRING | sed -f symbols | ingres polyn | tr "07" "*" | head 100 echo '< /PRE> ' #The end of script Организация стека графических ссылок

Скрипт imagemap <A href="http://polyn.net.kiae.su/cgi-bin/imagemap/ russia"> <img SRC="http://demin.polyn.kiae.su/dss/russia.gif" ISMAP> </A>

# метка : адрес файла описания картинки russia : /usr/local/etc/httpd/cgi-bin/maps/russia.map brussia : /usr/local/etc/httpd/cgi-bin/maps/brussia.map

....

#описание прямоугольника rect 10 20 100 200 circle 50 50 60 60 poly 10 10 20 20 20 10


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте