AWWW-1st3.6-w05.tresc-1.0-Slajd6

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Cechy programów CGI

Cechy programów CGI


Program CGI może być zaimplementowany w dowolnym języku programowania, który jest wykonywalny w środowisku systemu operacyjnego serwera HTTP (np. C, Pascal, Perl, skrypt UNIX, skrypt BAT).

Na potrzeby obsługi każdego żądania HTTP, serwer HTTP tworzy nowy proces systemu operacyjnego i w jego ramach wykonuje program CGI. Po zakończeniu pracy programu CGI proces ten jest usuwany.

Komunikacja pomiędzy serwerem HTTP a programem CGI ma bardzo uproszczoną formę. Serwer HTTP przekazuje programowi CGI parametry wejściowe za pomocą zestawu predefiniowanych zmiennych środowiskowych, za pomocą mechanizmu systemowego wejścia standardowego (np. stdin), a bardzo rzadko za pomocą parametrów wiersza poleceń. Komunikacja w przeciwnym kierunku odbywa się wyłącznie za pośrednictwem mechanizmu systemowego wyjścia standardowego (np. stdout).

Poważnym problemem programów CGI jest ich niska wydajność spowodowana koniecznością uruchamiania nowego procesu na potrzeby obsługi każdego żądania HTTP. Przykładowo, obsługa 100 równoczesnych żądań HTTP wymaga uruchomienia 100 procesów! Aby rozwiązać ten problem, zaproponowano rozwinięcie technologii CGI o nazwie FastCGI - programy FastCGI mogą być buforowane w pamięci operacyjnej i ponownie wykorzystywane do obsługi kolejnych żądań HTTP.

Technologia CGI nie cieszy się też dobrą opinią w zakresie bezpieczeństwa, ponieważ stwarza możliwości uruchamiania dowolnych programów wykonywalnych w systemie operacyjnym serwera HTTP. Z tego powodu wielu administratorów serwerów HTTP wyłącza obsługę CGI.


<< Poprzedni slajd | Spis treści | Następny slajd >>