Form in HTML e interfaccia CGI
2.2.4 Dati contenuti nelle variabili di sistema
Oltre ai dati relativi ai campi (nomi e valori) che costituiscono il contenuto della form e vengono
inviati come è stato mostrato, al server vengono mandate altre informazioni, come il nome dello host
che ha inviato la form, la lunghezza dei dati inviati, lo stesso metodo usato dalla form, etc. Queste
informazioni, indipendentemente dal metodo usato (GET, POST, etc.), sono memorizzate in apposite
variabili di sistema. Qui sotto se ne elencano alcune che contengono le informazioni più importanti
(vedi [3], [5]).
- REQUEST_METHOD Contiene il metodo usato dalla form.
- PATH_INFO Informazioni aggiuntive sul path del programma CGI, date dal client. Ciò serve ad
aggiungere ulteriore path alla fine del path già specificato per accedere ai programmi CGI.
- QUERY_STRING L'informazione che segue il "?" e che referenzia il programma CGI nella
URL. Con il metodo GET essa coincide con il vettore di nomi e valori dei campi (vedi 2.2.1).
- REMOTE_HOST Il nome dello host che ha inviato la richiesta per far partire il programma CGI.
Se il nome dello host risulta non risolto (unresolved), bisogna ricorrere all'indirizzo IP, contenuto
in REMOTE_ADDR.
- CONTENT_TYPE Il tipo di informazione (standard MIME) che viaggia con la richiesta di far
partire un programma CGI. Ciò avviene, per esempio, con il metodo POST.
- CONTENT_LENGTH La lunghezza dei dati inviati dal client come specificata dal client stesso.
- HTTP_USER_AGENT Il nome e la versione del "browser" usato dal client (Mosaic, Netscape,
etc.).
Per esempio, implementando un programma CGI in C, si potrà conoscere il valore delle variabili di
sistema con l'istruzione getenv():
utente = getenv(REMOTE_HOST); /* si acquisisce il nome dello host */