Co je FastCGI?
FastCGI je rozšíření Common Gateway Interface (CGI), které vyvinula nyní zaniklá společnost s názvem Open Market. FastCGI je volně k dispozici jako otevřený standard. Řeší určité nedostatky v CGI, které omezují výkon.
Na rozdíl od CGI FastCGI nevytváří nový proces pro každou žádost, čímž minimalizuje režii vytváření a ničení procesu při každém přijetí požadavku. Tuto režii lze obejít použitím aplikačních programových rozhraní (API), jako je Netscape Server Application Programming Interface (NSAPI) nebo Internet Server Application Programming Interface (ISAPI), ale protože jsou proprietární, existují další podporované křivky a omezení v podporovaných jazycích je třeba zvážit. Dalším nedostatkem CGI je skutečnost, že nelze získat určité případy opakovaného použití, například připojení k databázím nebo techniky ukládání do mezipaměti. Vyřizování žádostí může být až 30krát rychlejší pomocí FastCGI oproti konvenčním CGI.
U FastCGI lze více požadavků zpracovat prostřednictvím jediného připojení, které se nazývá multiplexování. Alternativně lze použít více připojení. Požadavky jsou přenášeny pomocí protokolu FTP (File Transfer Protocol) nebo soketů. Stejné spojení se pak použije k vrácení odpovědi.
Ačkoli v tomto okamžiku může být připojení ukončeno, webový server a proces stále přetrvávají. To nabízí mnoho výhod. Například to znamená, že proces serveru a aplikace lze vypnout nebo restartovat samostatně.
FastCGI byl původně vyvinut společností Open Market a implementován do nabídky webového serveru. Rozhraní však může být implementováno na jakémkoli serveru a brzy bylo zavedeno na řadě dalších průmyslových webových serverů. FastCGI je vysoce kompatibilní s distribuovanou výpočetní technikou, takže aplikace FastCGI může být spuštěna na samostatném serveru a sloužit na webu. To nabízí všechny výhody zlepšení dostupnosti systémů, zlepšení škálovatelnosti a zvýšení bezpečnosti systému, protože komponenty jsou izolované. Při použití vzdáleného FastCGI je méně správy, protože interní síť zvládne běh aplikací.
Stejně jako aplikace CGI může generovat odpověď na požadavek protokolu HTTP (Hypertext Transfer Protocol), může také FastCGI. Zpracovává také úkoly, jako je ověřování autentizace a převod datových typů. Tyto úkoly jsou řešeny pomocí rolí, které lze libovolně přidávat a rozšiřovat.
FastCGI je snadno pochopitelný a bude fungovat téměř s jakýmkoli programovacím jazykem. Procesy jsou izolované, takže servery nemohou být způsobeny problémy s aplikací. Jakákoli aplikace vytvořená pomocí rámce FastCGI je zpětně se starými servery s CGI. Knihovna aplikací je dále navržena tak, aby usnadnila migraci aplikací CGI.