Nemusíte být kouzelník, abyste pochopili, jak se dříve generoval obsah v reálném čase. Před nástupem moderních frameworků a jednostránkových aplikací bohatých na JavaScript bylo páteří dynamického webového obsahu CGI (Common Gateway Interface). Zní to suše. Ale funguje to jednoduše.
CGI skript je ve svém jádru jen program. Obvykle je napsán v C nebo PERL a je umístěn ve speciální složce na serveru, obvykle nazývané cgi-bin. Když prohlížeč přistupuje k URL tohoto skriptu, server neodešle pouze statický soubor. Spustí program. Vše, co tento program vypíše na standardní výstup (STDOUT), je odesláno přímo do vašeho prohlížeče.
Existuje jedno pravidlo, které nelze porušit. Úplně první věc, kterou by měl skript odeslat, je záhlaví: Content-type: text/html\n\n. Dva nové řádky na konci. Signalizují prohlížeči: “Následuje HTML.” Po tomto? Nic. Vývojáři obvykle odesílají správné značky HTML, aby zajistili správné zobrazení stránky.
Zpracování dat formuláře
Jak skript ví, jaká data zpracovat? Pocházejí z formuláře HTML. V kódu formuláře zadáte atribut ACTION, který ukazuje na adresu URL skriptu CGI. Když uživatel odešle formulář, data jsou předána skriptu.
Skript by pak měl dělat hlavní práci. Analyzuje příchozí řetězce. Dekóduje upravené znaky (například převede %20 zpět na mezeru). Tuto analýzu zvládne jednoduchý program v jazyce C, i když vyžaduje ruční správu paměti a manipulaci s řetězci.
Pokud používáte PERL, je vše jednodušší. Knihovna PERL CGI abstrahuje od vás složitou logiku analýzy. Funkci zavoláte a data jsou připravena. Je to čistší. Psaní je rychlejší.
Kam jdou výsledky?
V příkladu výukového programu můžete jednoduše zobrazit výsledky na obrazovce. Ve skutečném světě budete chtít tato data uložit. Textové soubory? databáze? Obě možnosti jsou vhodné. Odpovědi na průzkum můžete přidat do souboru protokolu z C nebo PERL s minimálním kódováním. Právě tato integrita dat dělá CGI užitečným nad rámec jednoduchého dema “Hello World”.
Dědictví CGI
V této souvislosti jsme probrali základy C a PERL. Pokud chcete jít hlouběji do mechaniky, můžete studovat, jak fungují programy C nebo PERL zevnitř. Nebo prozkoumejte, jak webové servery tyto požadavky spravují.
Pro ty, kteří se chtějí vyhnout standardnímu kódu, existují zdroje jako cgi-lib.pl. Jedná se o knihovnu, která výrazně zjednodušuje zpracování CGI v PERL. K dispozici je také CGI Resource Index pro dokumentaci a rychlé úvody do HTML formulářů.
To je stará technologie. Ale nastavilo to vzorec pro to, jak servery komunikují s externími programy. Když to pochopíte, pomůže vám to pochopit zásobník moderních technologií, i když aktuálně používáte Python nebo Node.js. Základní otázka zůstává stejná: jak vezmeme uživatelský vstup a přeměníme jej v dynamickou odezvu?
Odpověď začala skriptem ve složce cgi-bin.


















