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://zdes.piva.net/pivo/sorta.htm). Чтобы использовать шлюз, надо к нему обратиться, то есть, на самом деле, попросить у сервера одну из его CGI-программ. Обычно все программы (скрипты - их еще иногда называют сценариями) такого рода хранятся в специально отведенной для этого директории, которую по умолчанию называют cgi-bin. И все скрипты обычно имеют расширение .CGI. Учитывая все сказанное, вызов может быть таким:

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

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

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

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001