ЖУРНАЛ ХАКЕР

CGI - Common Gateway Interface

Спецвыпуск хакер, номер #002, стр. 002-068-1


Ramhak O`hady (konung@ic.ru)

У кого сейчас нет своей домашней странички? Да и не просто странички, а обычно целого сайта с подразделениями и хитрой навигацией. Каждый при этом норовит извратиться похитрее и забацать что-нибудь этакое - так, практически на всех страницах уже можно увидеть гостевые книги и даже свои домашние чаты. Я уж не говорю о таких, как оказалось, банальностях, как WWW борды. Как это сделать? Примерно таким вопросом задается каждый новичок Сети. Да очень просто! Примерно таким ответом отмазываются те, кто уже имеет опыт работы с CGI, а именно на этом ките о трех черепашьих ногах :-) стоит вся эта лабуда.

Что такое CGI?

CGI - это аббревиатура Common Gateway Interface. Означают эти магические слова примерно следующее - это общий стандарт шлюзов приема-передачи документов. Единый шлюзовой интерфейс, короче. Главной задачей этого стандарта является создание одинаковых условий работы с серваком юзеров и другими серваками вне зависимости от того, под какой операционкой стоит сервак, что это вообще за сраный сервак и какой там фиговый админ. Короче, по-русски - задача СиДжиАй - сделать так, чтоб все у всех работало. :) Работа стандарта CGI обеспечивается с помощью шлюзов и скриптов.

CGI-скрипт - это прога, написанная на любом из доступных сегодня языков, начиная с васика, перемежаясь трубопоскакалем и заканчивая bat-файлами DOS или командами текстового редактора в Юниксах.

CGI-шлюз - это CGI-прога, что называется, "в действии". То есть шлюзом называют CGI-скрипт, который сервак использует для выдачи информации клиенту-юзеру, и сам процесс обмена данными типа "а вот у вас тут HTML`ка лежала", "да-да, лежала где-то здесь... а! вот она! держите!".

Магические пассы руками - как это работает?

Вкратце весь процесс происходит так - как только юзер скажет своему браузеру урл какого-нибудь сервера, тот отошлет на этот сервер специальный запрос. Сервер, получив запрос и решив, что нужен запуск CGI, соответственно запускает CGI-программу, заранее заготовленную продуманным владельцем сайта, либо сам отдает страничку по запросу на растерзание всяким Нафигаторам и Е-мое Эксплорерам.

Урла, как известно, состоит из указания протокола, по которому будет производиться запрос (http:// или ftp://, или может быть gopher://) :-) собственно адреса сервера (какой-нибудь www.xxx2000.ru) плюс, возможно, конкретного файла на этом сервере в конкретном каталоге (http://zdes.piva.net/pivo/sorta.htm). Чтобы использовать шлюз, надо к нему обратиться, то есть, на самом деле, попросить у сервера одну из его CGI-программ. Обычно все программы (скрипты - их еще иногда называют сценариями) такого рода хранятся в специально отведенной для этого директории, которую по умолчанию называют cgi-bin. И все скрипты обычно имеют расширение .CGI. Учитывая все сказанное, вызов может быть таким:

http://vasya.pupkin.org/cgi-bin/guestbook.cgi

Все это, конечно, хорошо. Но тут явно чего-то не хватает. Именно так и решили создатели CGI. И включили в стандарт правила передачи параметров скриптам. То есть не нужно писать много-много скриптов для того, чтобы просто перелистывать страницы в гостевой книге - достаточно указать соответствующие параметры, и все будет "на ура". Передача параметров осуществляется через тот же урл, которым вызывается скрипт. Для этого сам урл отделяется от параметров знаком вопроса "?", параметры пишутся в виде "имя=значение", а между ними ставится знак амперсанд "&":

Содержание  Вперед на стр. 002-068-2