Technologie

Common Gateway Interface (CGI)

CGI to pierwszy standard wymiany informacji pomiędzy przeglądarką klienta a programem uruchamianym na serwerze. Wymiana informacji jest realizowana przez zmienne środowiskowe serwera oraz standardowe wejście, oraz wyjście programu. Rozwiązanie jest na tyle standardowe, że jako skrypt CGI można zastosować prawie dowolny język programowania, musi on tylko mieć funkcje lub metody pozwalające na dostęp do zmiennych środowiskowych oraz posiadać standardowe wejście i wyjście. Niemniej jednak najpopularniejszymi językami do pisania skryptów CGI jest Perl oraz C/C++.

Najpopularniejsze zastosowanie CGI to przetwarzanie danych pochodzących z formularzy, które klient wypełnia, a następnie ich zawartość przesyła się do serwera. Odpowiedź zostaje skierowana przez program na jego standardowe wyjście i przez CGI z powrotem do przeglądarki.

Dane są przesyłane do programu w postaci mało zrozumiałego ciągu znaków, złożonego z sekwencji znaków alfanumerycznych, połączonych znakami '+' i '&'. W ten sposób przeglądarka koduje znaki tak, aby dotarły one do serwera bez uszczerbku. Niestety nakłada to na programistę smutny obowiązek rozszyfrowania tego ciągu. Jest to łatwiejsze w języku Perl niż w C / C++, ale wszystko da się ominąć poprzez wykorzystanie odpowiednich bibliotek, które można znaleźć w sieci. Jak widać pisanie takich skryptów od podstaw jest trochę pracochłonne.

Wadą CGI jest mała efektywność działania. Za każdym razem serwer WWW musi powołać nowy proces, w którym uruchomiony zostanie skrypt CGI. Skrypt każdorazowo jest wczytywany do pamięci, uruchamiany (w przypadku Perla uruchamiany jest interpreter), podaje wyniki i zostaje zamknięty. Przy dużym obciążeniu serwera czytanie z dysku kodu CGI zajmuje dużo czasu i w efekcie całość działa dość wolno.

Właśnie te powody złożyły się na usytuowanie tej technologii w tym miejscu na schemacie. Jest ona prosta ale w pełni wystarcza jedynie do mało skomplikowanych projektów. Wykonanie większych jest możliwe, ale to już jest balansowanie na granicy. Tego typu wybór może być ciągłą walką z organiczeniami.