Apache nabízí několik způsobů, jak klientovi doručit aktivní obsah. Aktivní obsah HTML stránek je generován v závislosti na datech získaných od klienta. Např. vyhledávače poskytují seznam stránek na základě dotazu uživatele.
Apache generuje aktivní obsah třemi způsoby:
Jde o příkazy přímo v HTML stránce zapsané jako speciální komentáře. Apache komentáře interpretuje, vytvoří příslušný obsah a výsledek pošle jako část HTML stránky.
Programy v určitém adresáři. Apache jim předá parametry obdržené od klienta a klientovi vrátí výstup těchto programů. To je poměrně jednoduchý způsob, neboť lze snadno přizpůsobit mnoho existujících programů pro příkazovou řádku, aby takto spolopracovaly s Apachem.
Apache nabízí rozhraní pro vykonání jakéhokoliv modulu. Moduly jsou programy pracující s informacemi získanými od Apache. Apache umožňuje modulům přístup k důležitým informacím jako HTTP hlavičkám. Moduly lze použít kromě generování aktivních stránek také k jiným funkcím (například ověřování uživatele). Jejich výhodou je vysoký výkon a možnosti překonávající SSI i CGI. Podrobnější informace o modulech najdete v části 26.6 – „Moduly Apache“
Normálně jsou CGI skripty vykonávány přímo serverem Apache pod uživatelským ID jejich vlastníka. Naopak moduly jsou kontrolovány interpretem, který je v serveru Apache obsažen. Není tak nutné pro každý dotaz spouštět a ukončovat samostatný proces (což zvyšuje zátěž). Skript je interpretem spuštěn pod ID webserveru.
Toto řešení má i své chyby. CGI skripty jsou totiž oproti modulům velmi robustní. Při jejich použití nemají chyby při správě zdrojů a paměti tak ničivé následky jako u modulů, neboť dojde k ukončení programu po vyřízení požadavku. Při použití modulů může dojít ke kumulaci chyb. Pokud server běží bez restartu delší dobu, mohou se chyby hromadit a vést k nestabilitě systému.
Server-side includes jsou příkazy ve zvláštních komentářích vykonávané
Apachem. Výsledek je zahrnut ve výstupu. Například aktuální datum lze
zahrnout pomocí <!--#echo var="DATE_LOCAL" -->.
Znak # na konci otvírací značky
(<!--) říká indiánovi, že se jedná o SSI direktivu
a nikoliv o obyčejný komentář.
SSI lze aktivovat několika způsoby. Nejjednodušší je vyhledat SSI ve všech spustitelných souborech. Jiná možnost je určit, ve kterých souborech se má SSI hledat.
CGI je zkratka z anglického Common Gateway Interface. Díky CGI je server schopný zasílat mimo klasických statických stránek také dynamicky generované stránky. Tak je možné vytvářet stránky, které jsou výsledkem výpočtu nebo hledání v databázi. V závislosti na obdržené proměnné je server schopný vytvářet na každý dotaz zvláštní stránky lišící se obsahem.
Hlavní výhoda technologie CGI je jednoduchost. Programy jsou obvykle
uloženy v určitém adresáři a spouštěny serverem jako jakékoliv jiné
programy v systému. Server pak zašle výstup programu ze standardního
výstupu (stdout) klientovi.
Teoreticky mohou být CGI napsány v libovolném programovacím jazyce. Obvykle jsou k tomuto účelu používány skriptovací jazyky jako Perl nebo PHP. Pokud je rychlost kritická, může být vhodnější C/C++.
V nejjednodušším případě hledá indián tyto programy ve zvláštním adresáři
(cgi-bin). Ten lze nastavit v konfiguračním souboru
(viz 26.3 – „Konfigurace webového serveru“). Pokud je potřeba, mohou
být nastaveny další takové adresáře. Je však nebezpečné umožnit Apachi
spouštět programy uživatele. Pokud jsou CGI omezeny na adresář
cgi-bin, může administrátor lépe kontrolovat jejich
obsah.