ABC skryptów CGI

Dalej

Wprowadzenie do CGI

Standard CGI zaprojektowany został przez twórców jednego z pierwszych serwerów WWW - NCSA httpd - w którym został po raz pierwszy zaimplementowany. Specyfikację tego standardu znaleźć można pod adresem http://hoohoo.ncsa.uiuc.edu/cgi/. Obecnie obowiązującą wersją CGI jest wersja 1.1.

Zasadę współpracy serwera WWW z programem CGI obrazuje rys.1. Użytkownik odwołuje się do skryptu CGI za pośrednictwem przeglądarki WWW w sposób analogiczny, jak do zwykłego statycznego dokumentu HTML - np. klikając na odsyłacz na stronie WWW. Serwer WWW rozpoznaje, że adres nie oznacza zwykłego statycznego pliku, lecz skrypt, i uruchamia wskazany program, przekazując mu ewentualne informacje otrzymane z przeglądarki (np. w przypadku, gdy skrypt został wywołany w wyniku wypełnienia formularza na stronie WWW). Program wykonuje jakieś działanie (np. dopisuje wpis użytkownika do przechowywanej na serwerze księgi gości), a następnie tworzy dokument wyjściowy, który zostanie przez serwer odesłany przeglądarce użytkownika. Dokument ten ma najczęściej postać strony w języku HTML, ale nie jest to obowiązkowe - np. popularne na stronach WWW liczniki odwiedzin są przykładem skryptów wysyłających obrazy graficzne w formacie GIF.

Technika CGI nie jest związana z żadnym konkretnym językiem programowania. Skryptem CGI może być dowolny plik wykonywalny, który czyta dane ze standardowego wejścia i wypisuje wyniki na standardowe wyjście (w przypadku serwerów pracujących w systemie Windows program taki powinien być napisany jako tzw. aplikacja konsolowa). Plik ten powinien być oznaczony jako wykonywalny w normalnie przyjęty w danym systemie operacyjnym sposób (np. poprzez rozszerzenie .EXE w systemie Windows).

Nie każdy jednak plik wykonywalny umieszczony na serwerze WWW automatycznie traktowany jest jako skrypt CGI. Byłoby to pozbawione sensu, jako że bardzo często na serwerach umieszcza się pliki wykonywalne przeznaczone do "ściągnięcia" i zainstalowania na własnym komputerze. Aby program został rozpoznany jako skrypt, musi on być umieszczony pod odpowiednim adresem. Istnieją dwa podstawowe sposoby określania takich adresów. Po pierwsze, administrator serwera może ustalić w jego konfiguracji specjalny katalog (jeden lub kilka) przeznaczony dla skryptów CGI. Wówczas każdy dokument, którego ścieżka dostępu zawiera ten katalog, traktowany jest przez serwer jako skrypt. Standardowa konfiguracja większości serwerów WWW zawiera definicję jednego takiego katalogu, o nazwie /cgi-bin. Wszystkie adresy typu:

     http://www.serwer.com/cgi-bin/nazwa
traktowane są zatem przez serwer jako wywołania skryptów. Nazwę /cgi-bin oczywiście administrator może zmienić, jednak wielu administratorów zachowuje ją jako zwyczajowy standard. Rzeczywiste położenie i nazwa katalogu widzianego pod "wirtualną" nazwą /cgi-bin może być jednak różne; to także definiuje administrator w konfiguracji serwera.

Druga metoda rozpoznawania przez serwer skryptów CGI opiera się na rozszerzeniu nazwy pliku. Jest ona często stosowana w przypadku, gdy na serwerze znajdują się prywatne strony wielu różnych użytkowników (jak to ma miejsce w przypadku typowych serwerów usługowych, prowadzonych przez dostawców Internetu). Użytkownicy ci nie mają dostępu do katalogu /cgi-bin (pliki może tam umieszczać jedynie administrator serwera), w związku z tym skrypty CGI umieszczają we własnych katalogach, nadając im określone w konfiguracji serwera rozszerzenie nazwy pliku. Takim standardowym rozszerzeniem zazwyczaj jest .cgi (oczywiście także i to administrator może zmienić). Każde odwołanie do adresu typu

     http://www.serwer.com/katalog/nazwa.cgi
jest wówczas rozpoznawane przez serwer jako wywołanie skryptu.


Dalej

Jarosław Rafa 2000. Tekst udostępniony na licencji Creative Commons (uznanie autorstwa - użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.

Wersja HTML opracowana 11.10.2000.


Powrót do spisu treści Statystyka