Skip to main content

Szybkie CGI

Co to jest Fast CGI?

Fast CGI (F-CGI) to binarny protokół sieciowy używany jako interfejs pomiędzy serwerem aplikacji a serwerem WWW. Protokół sieciowy ma podobną funkcjonalność jak tradycyjny Interfejs wspólnej bramy (CGI). Celem opracowania protokołu Fast było obejście problemów wydajnościowych CGI i zapewnienie wysokiej wydajności protokołu sieciowego.

[su_list icon=”icon: commenting-o” icon_color=”#187bc0″ indent=”-5″]

Funkcjonalność w skrócie

Komunikacja z serwerem WWW realizowana jest bezpołączeniowo oraz pakietowo. Każdy pakiet danych zawiera w nagłówku następujące informacje:

  • dokładną wersję protokołu
  • typ komunikatu
  • identyfikator wniosku
  • długość kolejnych danych
[/su_list]

Zmienne środowiskowe CGI, między innymi, mogą być również transportowane jako część pakietu danych. Identyfikator żądania umożliwia rozróżnienie kilku klientów tak, aby mogli być obsługiwani jednocześnie. W przeciwieństwie do tradycyjnego CGI, wielu klientów może być obsługiwanych za pomocą jednej instancji programu.

Delimitacje

W momencie wywołania strony internetowej opartej na CGI, odpowiedzialny serwer WWW uruchamia proces aplikacji CGI i zamyka go ponownie po zakończeniu żądania. Ponieważ w wielu przypadkach aplikacje są napisane w języku skryptowym, takim jak PHP lub Perl odpowiedni interpreter musi być załadowany przy każdym wywołaniu. W przypadku tradycyjnego CGI, wywołanie to zajmuje trochę czasu i często trwa dłużej niż faktyczne wykonanie aplikacji. Wynikiem tego jest odpowiednio duży narzut na koszty ogólne.
Innym problemem związanym z CGI jest fakt, że dla każdego żądania serwera musi być ładowany osobny interpreter. Jeżeli w tym samym czasie jest kilka żądań, do pamięci serwera ładowanych jest kilka kopii interpretera. Może to szybko doprowadzić do przeciążenia i awarii systemu na mocno obciążonych serwerach internetowych.

Minimalne koszty ogólne

W bezpośrednim porównaniu z klasycznym CGI, w Fast-Common Gateway Interface aplikacja wykonująca wraz z interpreterem jest ładowana dopiero przy pierwszym żądaniu. Następnie może być wykorzystany do przetwarzania dalszych żądań. Nie ma różnicy, czy żądania pochodzą od tego samego czy od różnych klientów. Kolejną cechą wyróżniającą jest fakt, że cała komunikacja z serwerem WWW nie jest realizowana za pomocą zmiennych środowiskowych. Zamiast tego, połączenia sieciowe TCP lub Unix Domain Sockets (UDS) są stosowane.
Na poziomie systemowym, różnica pomiędzy Fast a klasycznym CGI polega przede wszystkim na tym, że żądania w F-CGI są przetwarzane przez centralną pętlę. Ta funkcjonalna zasada jest tak wydajna, że została przyjęta przez inne technologie internetowe na przestrzeni lat. Na przykład, jest on używany w środowisku uruchomieniowym JavaScript NodeJS środowisko uruchomieniowe. W rezultacie Fast CGI oferuje lepsze możliwości optymalizacji, ale w zamian wymaga jasnego i precyzyjnego programowania.

Szybkie CGI i dynamiczne strony internetowe

Fast Common Gateway Interface jest poprzednikiem dynamicznych stron internetowych. Protokół ten został opracowany przede wszystkim do przesyłania danych w sieci World Wide Web, dlatego obecnie jest uważany za przestarzały i nieaktualny w kontekście dynamicznych stron internetowych. W porównaniu z obecnymi rozwiązaniami, które stosunkowo łatwo pozwalają na tworzenie dynamicznych stron internetowych, F-CGI nie oferuje żadnych korzyści. Dynamiczne strony internetowe oparte na Stosy LAMP Oferują na przykład dobre wrażenia użytkownika, jak również pierwszorzędną wydajność, a ponadto mogą być stosunkowo łatwo rozwijane i utrzymywane za pomocą dostępnych narzędzi.

Wniosek

Fast CGI jest wysokowydajnym protokołem sieciowym, który jest oparty na technologii internetowej Common Gateway Interface i jest używany przede wszystkim jako interfejs pomiędzy serwerem aplikacji a serwerem internetowym.


Masz jeszcze jakieś pytania?

Prosimy o kontakt z nami


Dalsze treści