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.
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 |