Što je FastCGI?

FastCGI je proširenje Common Gateway Interface (CGI) koje je razvila sada neaktivna tvrtka pod nazivom Open Market. FastCGI je besplatno dostupan kao otvoreni standard. Rješava određene nedostatke u CGI-ju koji ograničavaju performanse.

Za razliku od CGI-ja, FastCGI ne stvara novi proces za svaki zahtjev, čime se minimaliziraju troškovi stvaranja i uništavanja procesa svaki put kada se primi zahtjev. Ovi se troškovi mogu zaobići korištenjem aplikacijskih programskih sučelja (API) kao što su Netscape Server Application Programming Interface (NSAPI) ili Internet Server Application Programming Interface (ISAPI), ali budući da su oni vlasnički, postoji dodatna krivulja učenja i ograničenja u podržanim jezicima uzeti u obzir. Još jedan nedostatak CGI-ja je činjenica da se određeni slučajevi za ponovnu upotrebu ne mogu dobiti, kao što su veze s bazama podataka ili tehnike predmemoriranja. Rukovanje zahtjevima može biti čak 30 puta brže korištenjem FastCGI u odnosu na konvencionalni CGI.

Uz FastCGI, višestruki zahtjevi se mogu obraditi preko jedne veze, što je poznato kao multipleksiranje. Alternativno, može se koristiti više veza. Zahtjevi se prenose korištenjem protokola za prijenos datoteka (FTP) ili utičnica. Ista veza se tada koristi za vraćanje odgovora.

Iako je veza u ovom trenutku možda zatvorena, web poslužitelj i proces i dalje traju. Ovo nudi mnoge prednosti. Na primjer, to znači da se proces poslužitelja i aplikacije može zasebno isključiti ili ponovno pokrenuti.

FastCGI je izvorno razvio Open Market i implementirao u svoju ponudu web poslužitelja. Međutim, sučelje se može implementirati na bilo koji poslužitelj, a ubrzo je postavljeno i na niz drugih web poslužitelja u industriji. FastCGI je vrlo kompatibilan s distribuiranim računalstvom, tako da se FastCGI aplikacija može izvoditi na odvojenom poslužitelju od web-servisa. To nudi sve prednosti povećanja dostupnosti sustava, poboljšanja skalabilnosti i povećanja sigurnosti sustava jer su komponente izolirane. Korištenjem udaljenog FastCGI-ja manje je administracije jer interna mreža može upravljati pokretanjem aplikacija.

Kao što CGI aplikacija može generirati odgovor na zahtjev Hypertext Transfer Protocol (HTTP), tako može i FastCGI. Također se bavi zadacima kao što su provjera autentičnosti i pretvaranje tipova podataka. Ovi zadaci se rješavaju pomoću uloga koje se mogu slobodno dodavati i proširivati.
FastCGI je jednostavan za razumijevanje i radit će s gotovo svim programskim jezikom. Procesi su izolirani, tako da se poslužitelji ne mogu srušiti zbog problema specifičnih za aplikaciju. Svaka aplikacija izgrađena s FastCGI frameworkom je unatrag sa starim poslužiteljima koji koriste CGI. Nadalje, knjižnica aplikacija dizajnirana je kako bi migraciju CGI aplikacija učinila jednostavnom.