CGI
Z Wikipedii
CGI (ang. Common Gateway Interface, interfejs bram sieciowych) jest jednym ze sposobów komunikacji serwera WWW z innymi aplikacjami. CGI umożliwia zarówno pobieranie danych pochodzących od przeglądarki jak i przekazywanie danych przeznaczonych dla niej.
Terminy "program CGI" i "skrypt CGI" są funkcjonalnie jednoznaczne. Powodem, dla którego programy CGI nazywane są często skryptami, jest popularność języków skryptowych (takich jak np. Perl) w ich tworzeniu.
Wśród rzeczy możliwych do osiągnięcia przy pomocy CGI znajdują się na przykład:
- pobieranie informacji z bazy danych i formatowanie rekordów w celu wyświetlenie ich zawartości na stronie;
- tworzenie ankiet i kwestionariuszy;
- tworzenie dynamicznych ilustracji - takich jak wykresy czy schematy.
Najważniejsze cechy CGI, to:
- Niezależność od platformy. CGI jest wbudowane w większość serwerów WWW, bez względu na to, z jakiej platformy korzystają. Wszystkie popularne serwery zawierają mechanizm CGI, włączając w to serwery uniksowe (Apache, Sun Java System Web Server, NCSA HTTPd), oparte na Windows (Apache, Netscape, Microsoft IIS) czy dla Macintosha (Apache, WebStar). Również wiele innych serwerów zawiera interfejs CGI.
- Skalowalność. Prostota interfejsu CGI sprawia, że jest on niezwykle łatwo skalowalny. Można użyć go do czegoś prostego, jak przesyłanie zawartości formularza na odpowiedni adres e-mail, ale również do budowania czegoś bardziej złożonego, jak internetowy supermarket, który korzysta z kilku baz danych Oracle.
- Niezależność od języka programowania. Programy CGI są niezależne od języka, w którym są napisane. Oznacza to, że można pisać tego typu programy w takim języku, jaki jest najwygodniejszy dla piszącego. Często wykorzystuje się Perla, PHP, Tcl, C, C++, Visual Basic i AppleScript. Wiele z tych języków posiada biblioteki wspomagające obsługę CGI (generowanie kodu HTML, obsługa formularzy itp.)
Obsługa CGI wiąże się zazwyczaj z tworzeniem nowego procesu na każde żądanie. Powoduje to duże obciążenie serwera, zwłaszcza dla języków interpretowanych. Powstały rozwiązania przyśpieszające typu FastCGI lub automatyczne tworzenie tymczasowych wersji kompilowanych.
Istnienie wersji CGI dla różnych platform nie oznacza jeszcze, że program napisany dla jednej platformy będzie działał na innej. Na szczęście aplikacje napisane na przykład w Javie lub Perlu mogą być przenoszone z niewielkimi modyfikacjami, lub nawet bez nich. Programy napisane w języku C muszą być przynajmniej rekompilowane.
Innym rozwiązaniem problemu dynamicznego tworzenia zawartości WWW są szablony z rozmaitymi językami skryptowymi (na przykład PHP czy ASP).