Wprowadzenie

W "standardowej" sytuacji strony umieszczane na serwerach WWW są statyczne - pliki raz umieszczone na serwerze są wyświetlane w początkowej wersji aż ktoś je zmieni.

W bardziej zaawansowanych zastosowaniach zachodzi potrzeba tworzenia stron dynamicznych, takich których treść jest zmienna zależnie od pewnych warunków (np. czasu, danych wejściowych użytkownika)

Trudno wyobrazić sobie sklep internetowy, czy klienta webowego klienta poczty opartego na statycznych stronach...

CGI jest interfejsem zaprojektowanym w taki sposób, aby można było program napisany w dowolnym języku (binarny, bądź skryptowy) "podpiąć" do serwera WWW. Dzięki temu strona wysyłana użytkownikowi może być efektem działania programu i w ten sposób być dynamiczna.

Jedynym ograniczeniem tej metody jest warunek, że czas generowania strony nie powinien być zbyt długi, ponieważ naraża to użytkownika na czekanie na jakąkolwiek reakcje przeglądarki WWW.

W powyższym opisie posługiwałem się dla uproszczenia pojęciem strona, jednak za pomocą CGI, możemy wysyłać bez problemów każdą inną formę danych (np. obrazek, bądź spakowany plik do pobrania).

Zastosowania

CGI można z powodzeniem stosować we wszystkich miejscach w których potrzebujemy dynamicznych informacji. Mogą to być zarówno tak proste zastosowania jak np. licznik odwiedzin, tworzenie historii odwiedzin strony, czy informowanie o zalogowaniu danej osoby na serwerze; jak i skomplikowane jak odstęp do bazy danych, sklep internetowy i inne serwisy interaktywne.

W nieskomplikowanych zastosowaniach wygodnie jest posługiwać się językami skryptowymi (np. bash, perl), ponieważ szybkość nie jest wtedy krytyczną cechą, a umożliwiają one łatwe poprawianie i zmienianie kodu, bez konieczności rekompilacji.

CGI jest również bardzo przydatny, gdy nasze zastosowanie wymaga użycia języków, bądź bibliotek niedostępnych w lepiej przystosowanych do tworzenia dynamicznych serwisów językach (np. PHP). Np. Nie standardowa baza danych może mieć interface tylko w C, co zmusza nas do napisania programu obsługi w tym języku.


Jan Słupski,
jslupski@email.com