Przed uruchomieniem skryptu CGI, Abyss Web Server ustawia jego zmienne środowisku w zgodności ze specyfikacją CGI/1.1 (opisaną pod http://hoohoo.ncsa.uiuc.edu/cgi) i dodaje zmienne zdeklarowane w tabelce Zmienne środowiskowe CGI Użytkownika tak jak pewne zmienne środowiskowe systemu (mianowicie PATH, TEMP, TMP, SystemRoot, COMSPEC, PATHEXT, i WINDIR .)
Poniższa lista zawiera zmienne udokumentowane w specyfikacji CGI/1.1 i pewne powszechnie ustawiane przez serwery sieciowe:
PATH_INFO: Dodatkowe informacje o podanej ścieżce w żądanym URL`u. W rzeczywistości, skrypty mogą być wywołane przez ich wirtualną ścieżkę, po której następuje dodatkowa informacja na końcu tej ścieżki. Ta dodatkowa informacja wysyłana jest jako PATH_INFO.
PATH_TRANSLATED: Przekstałcona z wirtualnej do rzeczywistej wersja PATH_INFO.
SCRIPT_NAME: Wirtualna ścieżka wykonywanego skryptu.
SCRIPT_FILENAME: Rzeczywista ścieżka wykonywanego skryptu.
SERVER_SOFTWARE: Identyfikator oprogramowania serwera sieciowego.
SERVER_NAME: Nazwa hosta lub adres IP komputera z żądanego URL`a, który ma uruchomiony serwer sieciowy.
SERVER_PORT: Port, do którego zostało wysłane żądanie.
GATEWAY_INTERFACE: Wersja Specyfikacji CGI obsługiwanej przez serwer sieciowy; zawsze ustawione na CGI/1.1.
SERVER_PROTOCOL: Wersja protokołu HTTP używanego przez obecne żądanie.
REQUEST_METHOD: Metoda używana przez obecne żądane; zazwyczaj ustawione na GET lub POST.
QUERY_STRING: Informacja, która następuje po znaku ? w żądanym URL`u.
REMOTE_ADDR: Adres IP komputera, z którego zostało wysłane żądanie.
REMOTE_PORT: Port, z którego zostało wysłane żadanie.
CONTENT_TYPE: Typ MIME żądanej treści; określony tylko dla żądań POST lub PUT.
CONTENT_LENGTH: Długość podawana w bajtach żądanej treści; określona tylko dla żądań POST lub PUT.
DOCUMENT_ROOT: Ścieżka absolutna plików witryny. Ma taką samą wartość jak Ścieżka Dokumentów.
AUTH_TYPE: Typ uwierzytelnienia, jeżeli klient uwierzytelnił siebie aby uzyskać dostęp do skryptu.
AUTH_USER i REMOTE_USER: Nazwa użytkownika podana przez klienta gdy uwierzytelnił siebie aby uzyskać dostęp do skryptu.
Dodatkowo do tych zmiennych, wszystkie wiersze nagłówka odbierane w żądaniu są dodawane do środowiska z przedrosktkiem HTTP_, po którym następuje nazwa nagłówka wielkimi literami. Wszystkie znaki - w nazwie nagłówka zmieniane są na znaki podkreślenia _. Na przykład, User-Agent jest tłumaczone na HTTP_USER_AGENT.
Jeśli żądanie wynika z wewnątrznego przekierowania (z dokumentu SSI lub jeśli jest to używane jako własna strona błędu, na przykład), zmienne środowiskowe żądania nadrzędnego są także dodawane, a każda nazwa zmiennej jest poprzedzana przez REDIRECT_. Kod stanu żądania nadrzędnego jest zachowywany w specjalnej zmiennej REDIRECT_STATUS. Cookies (Ciasteczka) żądania nadrzędnego są także podawane żądaniowi nadrzędnemu w zmiennej środowiskowej COOKIES.
Przykład 5-1. Wykorzystywanie informacji przekierowania w skryptach CGI
Jeżeli skrypt CGI jest wywoływany po wewnętrznym przekierowaniu, skrypt ten może odczytać ciekawe informacje ze środowiska o jego nadrzędnych żądaniach, takie jak:
REDIRECT_SCRIPT_NAME: Wirtualna ścieżka dokumentu nadrzędnego.
REDIRECT_STATUS: Kod stanu żądania nadrzędnego. Kod ten jest użyteczny gdy piszesz skrypty, które generują własne strony błędów.
Poprzedni | Spis treści | Następny |
Jak one działają? | Początek rozdziału | Pliki Dołączane Serwera [SSI] |