Un server HTTP transfera informatii unui scenariu CGI utilizand argumente de linie de comanda si variabile de mediu. Serverul atribuie valori variabilelor de mediu cand executa un scenariu. In continuare iti prezentam cele mai importante dintre aceste variabile. Pentru cele mai multe dintre ele iti prezentam chiar valorile avute de pagina, respectiv serverul nostru. Variabila AUTH_TYPE Variabila AUTH_TYPE este folosita pentru autentificarea unui utilizator care incearca sa obtina acces la un scenariu. Daca serverul este configurat pentru a permite autentificarea utilizatorilor, utilizatorul care incearca sa obtina aces la un scenariu CGI trebuie sa furnizeze un nume de utilizator si o parola valida. Exemplu: AUTH_TYPE = Basic Variabila CONTENT_LENGTH Variabila este folosita pentru a determina numarul exact de octeti continut in daele atasate. De exemplu daca o interogare (query) contine un document de 1024 de octeti, valoarea variabilei CONTENT_LENGTH va fi: Exemplu: CONTENT_LENGTH = 1024 Variabila CONTENT_TYPE Scenariile CGI utilizeaza variabila de mediu CONTENT_TYPE pentru interogari care au atasate informatii, de exemplu o operatie HTTP de tip POST. Informatia continuta specifica tipul atasamentelor (MIME tip/subtip). Exemplu: CONTENT_TYPE = text/html Variabila GATEWAY_INTERFACE Scenariile CGI utilizeaza variabila de mediu GATEWAY_INTERFACE pentru a determina numarul de revizie al specificatiei CGI cu care lucreaza serverul Web. Formatul numarului de revizie al specificatiei CGI este: CGI/numar revizie. 49526vtj68shs1t Exemplu: GATEWAY_INTERFACE = CGI/1.1 Variabila PATH_INFO Variabila PATH_INFO poate fi utilizata pentru a obtine numele de cale virtuala al scenariului. Exemplu: PATH_INFO = programare/cgi_variabile.php3 Variabila PATH_TRANSLATED Variabila PATH_TRANSLATED poate fi utilizata pentru a obtine numele complet de cale al scenariului. Exemplu: PATH_TRANSLATED = Variabila QUERY_STRING Scenariile CGI utilizeaza variabila QUERY_STRING pentru a primi informatii de tip text care urmeaza dupa caracterul semnul intrebarii (?) in URL-ul specificat de utilizator pentru lansarea scenariului. Serverul va inlocui toate caracterele speciale cu caracterele "%aa" ude "aa" este o cifra in baza 10, iar spatiul il va inlocui cu "+". Deci scenariul trebuie sa contina instructiuni pentru decodarea sirului de caractere. De exemplu, pentru adresa URL https://www.resurse.com/feedback.php3?nume=Viorel+Popescu, valoarea variabilei de mediu va fi: Exemplu: QUERY_STRING = nume=Viorel+Popescu Variabila REMOTE_ADDR Folosind variabila REMOTE_ADDR un scenariu CGI poate afla adresa IP a unui browser care efectueaza o cerere. De exemplu, adresa ta IP este: th526v9468shhs Exemplu: REMOTE_ADDR = 213.233.80.185 Variabila REMOTE_HOST Folosind variabila REMOTE_HOST un scenariu CGI poate afla numele unei gazde care efectueaza o cerere. Exemplu: REMOTE_HOST = resurse.com Variabila REQUEST_METHOD Folosind variabila REQUEST_METHOD un scenariu CGI poate afla tipul de cerere HTTP pe care browser-ul a trimis-o serverului pentru apelarea unui scenariu, de exemplu GET, HEAD sau POST. Exemplu: REQUEST_METHOD = GET Variabila SCRIPT_NAME Scenariile CGI folosesc variabila SCRIPT_NAME pentru a determina calea virtuala catre scenariul care va fi rulat pe server. Exemplu: SCRIPT_NAME = /programare/cgi_variabile.php3 Variabila SERVER_NAME Folosind variabila SERVER_NAME se poate determina numele de gazda al unui server Web, numele unui domeniu sau o adresa IP. Exemplu: SERVER_NAME = www.resurse.com Variabila SERVER_PORT Folosind variabila SERVER_PORT se poate afla numarul portului utilizat de browser pentru conectarea la serverul Web. Exemplu: SERVER_PORT = 80 Variabila SERVER_PROTOCOL Folosind variabila SERVER_PROTOCOL se poate afla numele si numarul de revizie al protocolului utilizat de browser pentru a trimite o cerere catre serverul Web. Exemplu: SERVER_PROTOCOL = HTTP/1.1 Variabila SERVER_SOFTWARE Folosind variabila SERVER_SERVER se poate afla numele si numarul de revizie al serverului de Web folosit. Exemplu: SERVER_SOFTWARE = Apache/1.3.29 (Unix) mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2634 mod_ssl/2.8.16 OpenSSL/0.9.7c PHP-CGI/0.1b Variabila HTTP_USER_AGENT Folosind variabila HTTP_USER_AGENT se poate afla numele si versiunea browser-ului folosit de client. Exemplu: HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)