Vyšlo v týdeníku CHIPweek č. 7/96, 13. února 1996
Vytištěno z adresy: http://www.earchiv.cz/a96/a607k130.php3

CGI

Tak jako většina úspěšných řešení, i oblíbená internetová služba jménem World Wide Web se neustále vyvíjí a zdokonaluje. Velmi důležitým milníkem na její cestě za stále dokonalejšími možnostmi bylo i zavedení zpětné vazby, umožňují přenos informací od uživatele zpět k WWW serveru. Do té doby totiž byla služba World Wide Web především jednosměrným distribučním kanálem, sloužící potřebám přenosu informací směrem k uživateli. Možnost zpětné vazby se objevila se zavedením tzv. formulářů, které jsou přesně tím, co jejich název slibuje - jsou to speciálně formátované WWW stránky s políčky několika možných typů, do kterých uživatel vpisuje různé údaje, či ve kterých vybírá jednu z předem definovaných možností, ve kterých zaškrtává jednu nebo několik možností apod., a pak „zmáčknutím" ovládacího prvku ve formě tlačítka všechny takto vyplněné informace odesílá zpět WWW serveru, který mu formulář původně poslal.

Jakmile byla do služby WWW zavedena takto fungující zpětná vazba, otevřelo se rázem mnoho netušených možností pro její využití. Náhle se stalo možné to, aby uživatelé ze svých klientských programů (tzv. browserů) zasílali různé příkazy a povely WWW servery, který na ně požadovaným způsobem reagoval - prostřednictvím formuláře je například možné realizovat on-line objednávky, ve kterých uživatel vyznačí o co má zájem, kam mu to má být posláno apod. Časem se ale přišlo i na to, že existenci zpětné vazby v rámci WWW by šlo využít k něčemu ještě šikovnějšímu: k tomu, aby celá služba WWW fungovala jako platforma zprostředkovávající jednotný přístup k dalším službám, které již mohou mít v zásadě jakoukoli podstatu a formu. Představme si jako příklad kladení dotazů do nějaké databáze či informačního systému, který sám o sobě není realizován v rámci služby WWW (jde například o zcela „samostatnou" databázi). Služba WWW zde může sloužit jako prostředník, který nejprve zajistí získání vstupních dat od uživatele (jeho dotaz), pak tato data předá tomu, kdo je bude skutečně zpracovávat (v daném případě příslušnému databázovému stroji), posléze si zase převezme výsledky, a zajistí jejich předání zpět tazateli (ve formě WWW stránky). Pro uživatele to bude mít velmi příjemný efekt v tom, že bude moci využívat různé služby prostřednictvím jediného (a tedy vždy stejného) klientského programu, navíc dostupného prakticky odkudkoli v rámci celého dnešního Internetu a z většiny dnes existujících počítačových platforem.

Uživatel takovéto služby si navíc bude moci myslet, že jde o přímou součást WWW, resp. že mu tuto službu poskytuje přímo příslušný WWW server. Ve skutečnosti to samozřejmě nebude pravda, protože WWW server zde bude fungovat jen jako prostředník, a skutečné zpracování bude zajišťovat někdo jiný - jiná aplikace, fungující víceméně autonomně a nezávisle na WWW serveru. Pro praktické uskutečněné této možnosti však bylo nutné učinit ještě jeden důležitý krok: zavést vhodný mechanismus komunikace mezi WWW serverem a dalším subjektem (jiným programem), který zajišťuje vlastní zpracování. Tedy mechanismus, který by WWW serveru umožňoval korektně předat jinému programu celý dotaz i se všemi jeho náležitostmi, a poté zase umožnil převzít od něj všechny výsledky, převést je do tvaru WWW stránky, a tu odeslat zpět tazateli do jeho browseru. Tímto „jiným programem" je nejčastěji další prostředník, který teprve zajišťuje komunikaci se skutečným zpracovatelem dotazu. Proto se spíše hovoří o tzv. bráně (angl. gateway), jejíž chování musí být z jedné strany přizpůsobeno požadavkům a chování skutečného zpracovatale dotazu (např. databáze), a z druhé strany požadavkům WWW serveru. Souhrn požadavků na této druhé straně, tedy souhrn konvencí a datových formátů pro komunikaci mezi WWW serverem a příslušnou bránou, je dnes již ustálen a standardizován jako tzv. CGI rozhraní (což je zkratka od anglického „Common Gateway Interface").