Co to jest FastCGI?

FastCGI to rozszerzenie Common Gateway Interface (CGI), które zostało opracowane przez nieistniejącą już firmę o nazwie Open Market. FastCGI jest dostępny bezpłatnie jako otwarty standard. Rozwiązuje pewne niedociągnięcia w CGI, które ograniczają wydajność.

W przeciwieństwie do CGI, FastCGI nie tworzy nowego procesu dla każdego żądania, minimalizując w ten sposób nakład pracy związany z tworzeniem i niszczeniem procesu za każdym razem, gdy żądanie jest odbierane. Ten narzut można obejść za pomocą interfejsów programowania aplikacji (API), takich jak Netscape Server Application Programming Interface (NSAPI) lub Internet Server Application Programming Interface (ISAPI), ale ponieważ są one zastrzeżone, istnieje dodatkowa krzywa uczenia się i ograniczenia w obsługiwanych językach do rozważenia. Inną wadą CGI jest fakt, że nie można uzyskać pewnych przypadków ponownego wykorzystania, takich jak połączenia z bazami danych lub techniki buforowania. Obsługa żądań może być nawet 30 razy szybsza przy użyciu FastCGI w porównaniu z konwencjonalnym CGI.

Dzięki FastCGI wiele żądań może być obsługiwanych przez jedno połączenie, co jest znane jako multipleksowanie. Alternatywnie można użyć wielu połączeń. Żądania są przesyłane za pomocą protokołu FTP (File Transfer Protocol) lub gniazd. To samo połączenie jest następnie używane do zwrócenia odpowiedzi.

Chociaż połączenie może zostać w tym momencie zamknięte, serwer sieciowy i proces nadal trwają. Daje to wiele korzyści. Na przykład oznacza to, że serwer i proces aplikacji można osobno zamknąć lub ponownie uruchomić.

FastCGI został pierwotnie opracowany przez Open Market i zaimplementowany w ofercie serwerów WWW. Interfejs można jednak zaimplementować na dowolnym serwerze, a wkrótce pojawił się na wielu innych branżowych serwerach internetowych. FastCGI jest wysoce kompatybilny z przetwarzaniem rozproszonym, więc aplikacja FastCGI może działać na oddzielnym serwerze do serwera WWW. Daje to wszystkie korzyści w postaci zwiększenia dostępności systemów, poprawy skalowalności i zwiększenia bezpieczeństwa systemu, ponieważ komponenty są izolowane. Korzystając ze zdalnego FastCGI, administracja jest mniejsza, ponieważ sieć wewnętrzna może obsługiwać uruchamianie aplikacji.

Podobnie jak aplikacja CGI może generować odpowiedź z żądania protokołu Hypertext Transfer Protocol (HTTP), tak samo FastCGI. Obsługuje również takie zadania, jak weryfikacja uwierzytelniania i konwersja typów danych. Zadania te są obsługiwane za pomocą ról, które można dowolnie dodawać i rozszerzać.
FastCGI jest łatwy do zrozumienia i działa w prawie każdym języku programowania. Procesy są izolowane, więc serwery nie mogą ulec awarii z powodu problemów związanych z aplikacją. Każda aplikacja zbudowana przy użyciu frameworka FastCGI jest wsteczna ze starymi serwerami z CGI. Ponadto biblioteka aplikacji została zaprojektowana w celu ułatwienia migracji aplikacji CGI.