Srovnání metody CGI scriptů a API serverů
CGI
Jde o standardní rozhraní pro aplikace na WWW, které bylo poprvé implementováno u NCSA serveru. CGI má mnoho výhod:
- Jednoduchost.
- Svobodná volba programovacího jazyka.
- Oddělenost procesu.Aplikace běží jako samostatný proces, chyba v aplikaci nemůže způsobit pád serveru. Z aplikace nelze vniknout do chráněných oblastí serveru.
- Jde o otevřený standard. CGI jsou implementovány v každém WWW serveru.
- Nezávislost na architektuře serveru. CGI není svázáno s architekturou serveru (vícevláknová, jednovláknová architektura).
CGI má ale i své nevýhody:
- Výkonnost je nízká, neboť se pro každý požadavek server zakládá nový proces, který se po vyřízení požadavku ukončí.
- Omezená funkčnost. CGI pouze odpovídá na požadavky tak, že aplikace generuje odpověď (obvykle HTML soubor), která je posílána jako odpověď klientovi. CGI nemůže spolupracovat s částmi serveru jako je protokolování nebo autentizace.
API serveru
API je snahou prodecentů WWW serverů o řešení nevýhod CGI v rámci vlastního serveru. Mezi významné patří NSAPI od firmy Netscape a ISAPI od firmy Microsoft. Také free server Apache má své API.
API začleňuje aplikaci přímo do jádra serveru.
Aplikace realizované pomocí API serveru jsou výrazně rychlejší než CGI, aplikace běží v procesu vlastního serveru, tento proces je trvale spuštěn, neukončuje se a nezakládá jako CGI proces.
Aplikace realizovaná pomocí API nabízí rozmanitější funkce, nejen vytváření odpovědí na požadavky.
API však i nevýhody:
- Složitost vytváření.
- Určenost jazyka. Aplikace musí být psané v programovacím jazyce, který je určen výrobcem (obvykle C/C++).
- Proces aplikace není oddělený. Chyba aplikace může způsobit havárii celého serveru.
- Závislost na výrobci. API různých serverů jsou různá.
- Svázanost s architekturou serveru. Aplikace musí respektovat architekturu serveru. Pokud server podporuje multi-thready, musí aplikace být thread-save. Pokud se změní architektura serveru, změní se obvykle i API a aplikace je potřeba přepsat.