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.
|