\"/
\"/ \"/    

CGI a dynamicke WWW-dokumenty

Miroslav Bartošek, ÚVT MU
Ročník VIII - číslo 1, říjen 1997
Citace: M. Bartošek. CGI a dynamicke WWW-dokumenty. Zpravodaj ÚVT MU. ISSN 1212-0901, 1997, roč. VIII, č. 1, s. 9-10.
Tematické zařazení: Software obecně - principy, tvorba, Webové zdroje a technologie
 předchozí článek | následující článek 

Většina čtenářů Zpravodaje dnes již běžně "brouzdá" Internetem prostřednictvím webovského prohlížeče Netscape nebo MS Explorer. Nemalá část z nich si již také jistě zkusila vytvořit vlastní webovskou stránku. Není to ostatně nic tak složitého: stačí k tomu i zcela běžný textový editor a znalost pár základních příkazů jazyka HTML1. Text dokumentu opatřený HTML-příkazy se uloží do souboru a umístí na www-server tak, aby mohl být vyžádán www-prohlížečem kteréhokoliv oprávněného uživatele v Internetu.

Webovské dokumenty uložené v souborech (a takových je v Internetu většina), bývají označovány jako dokumenty statické. Poskytují totiž stále tutéž neměnnou statickou informaci (dokud ji sám autor nezmění). Statické dokumenty nemohou zobrazovat dynamicky se měnící údaje, nemohou komunikovat - tj. přijímat vstupní data od uživatele, a nemohou ani sloužit jako prostředník k aktivaci a prezentaci výsledků nejrůznějších ne-webovských informačních systémů. K překonání těchto omezení byla postupně zavedena řada technologií; tou nejstarší z nich - a dodnes stále nejpoužívanější - je generování dynamických webovských dokumentů pomocí externích CGI-programů.

Dynamické www-dokumenty neexistují v podobě souborů na disku počítače; jsou na vyžádání generovány externím programem na počítači provozujícím www-server a jsou přímo zasílány www-klientovi (na serveru se neuchovávají). Aby programátoři takovýchto externích programů nemuseli vždy znovu a znovu pro každý typ www-serveru, počítače nebo operačního systému zkoumat, jak zajistit komunikaci mezi www-serverem a svým externím programem generujícím dynamické www-dokumenty, vymyslely a zavedly pro to organizace CERN a NCSA2 standard nazvaný CGI - Common Gateway Interface. Stručně řečeno, CGI definuje, jak se vstupní údaje od uživatele (zapsané do HTML-formuláře na webovské stránce) dostanou přes www-server až k externímu programu, a naopak - jak má vypadat výstup z externího programu, aby ho www-server správně interpretoval jako www-dokument, který má zaslat www-prohlížeči jako odpověď na požadavek uživatele.
Jak naznačuje slovo "gateway" v názvu standardu CGI, slouží obvykle takovéto externí programy jako prostředník mezi systémem WWW a systémy pracujícími na jiném principu, například aplikacemi vytvořenými nad tradičními databázovými systémy: externí program získá od www-serveru vstupní data zadaná uživatelem, přeformuluje je na dotaz ve tvaru požadovaném databázovou aplikací a zašle tento dotaz aplikaci ke zpracování. Získanou odpověď naformátuje do podoby HTML-dokumentu a předá zpět www-serveru k zaslání uživateli (takto funguje např. i webovská Personální databáze zaměstnanců MU, viz následující článek Zdeňka Valacha).

Z toho, co jsme doposud uvedli, je zřejmé, že na rozdíl od statických www-dokumentů je pro tvorbu dynamických dokumentů zapotřebí znalost programování. CGI-program může být vytvořen v jakémkoliv programovacím jazyce, který je instalován na počítači provozujícím www-server. Často se CGI-programy programují v jazyce C nebo C++, FORTRAN, Visual Basic, ale také v interpretační verzi v jazyce PERL nebo dokonce jako skript v některém unixovém shellu (unixová obdoba MS-DOSovských dávkových souborů .BAT). Pro většinu těchto programovacích jazyků existují volně dostupné CGI-knihovny podprogramů, které realizují často používané operace v CGI-programech.

Aby to celé správně fungovalo, musí mít www-server stanovena jasná pravidla, která mu umožní bezpečně poznat, zda informační zdroj požadovaný od něj uživatelem v podobě URL-odkazu je CGI-program (který má být aktivován) nebo statický www-dokument (který má být zaslán uživatelově prohlížeči k zobrazení). Obvykle je to řešeno tak, že v konfiguraci www-serveru je uveden jeden či více adresářů sloužících pro ukládání CGI-programů (viz např. adresář cgi-bin). Pouze odkazy do těchto adresářů jsou www-serverem interpretovány jako volání externích CGI-programů. Z bezpečnostních důvodů nemohou ukládat do těchto adresářů své programy libovolní uživatelé, ale pouze ti, kteří to mají správcem www-serveru explicitně povoleno.

Abychom v našem seznámení s CGI a dynamickými webovskými dokumenty nezůstali jen u obecného povídání, řekneme si příště trochu více o tom, jak se předávají data mezi www-serverem a CGI programy, a ukážeme si také některé jednoduché příklady.

(... pokračování)
setting
1 Hypertext Markup Language - je sada předdefinovaných příkazů/značek ve tvaru <značka>, které autor zapisuje přímo do textu webovského dokumentu. Tyto příkazy slouží k označení operací, které má www-prohlížeč nebo server provést s příslušnou částí dokumentu - např. zobrazit ji speciálním typem písma, vyrobit z ní tabulku, interpretovat ji jako hypertextový odkaz na jiný www-dokument či obrázek atd.
... zpět do textu
2 Jak je všeobecně známo, západoevropský CERN je "otcem" webu, zatímco americká vládní instituce NCSA je místem vzniku prvního grafického www-prohlížeče Mosaic; část z tvůrců Mosaicu založila později soukromou firmu Netscape vyvíjející www-prohlížeč stejného jména.
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011