CGI
Common Gateway Interface (CGI) i FastCGI su alati za podršku veb servera koji delegiraju generisanje Veb sadržaja izvršnim fajlovima (aplikacijama). Takvi fajlovi su poznati kao CGI skripte; programi ili samostalne aplikacije, obično pisane na jeziku skripti.
CGI protokol inicira poseban proces na početku svakog HTTP zahteva i okončava ga nakon izvršenja. Ovaj model “novi proces za svaki novi upit” je vrlo jednostavan za implementaciju.
CGI ima sledeće prednosti:
- Nezavisnost od programskih jezika – CGI aplikacije mogu biti napisane na gotovo svakom jeziku.
- Izolovani procesi – Aplikacije rade u odvojenim procesima, dajući sigurnost i stabilnost.
- Open Standard – CGI je implementiran na bilo kom veb serveru.
- Arhitektonska nezavisnost – CGI nije vezan za arhitekturu servera.
CGI takođe ima neke nedostatke, a glavni je produktivnost. To se može uočiti u procesima koji se često izvode. Pošto se za svaki upit kreira novi proces i posle izvršenja se prekida, performanse su niže od FastCGI protokola.
FastCGI
FastCGI je noviji, brži i optimalniji način za rad veb servera sa dodatnim aplikacijama.
Pednosti FastCGI-ja su:
- Visoke performanse – FastCGI procesi se ponovo koriste kako bi poslužili više HTTP upita, a ne samo jedan. Ovo rešava CGI problem tako što kreira nove procese za svaki upit i shodno tome povećava produktivnost.
- Jednostavna CGI migracija – Obično se aplikacije pisane za CGI mogu relativno lako migrirati na FastCGI.
- Nezavisnost od programskih jezika – Kao i CGI, FastCGI aplikacije mogu biti napisane na gotovo svim programskim jezicima.
- Izolovani procesi
- Arhitektonska nezavisnost – FastCGI je podržan od strane svih serveera na tržištu.