Alianwebserver.com

sommaire.gif (5085 octets)

VARIABLES D'ENVIRONNEMENT CGI

1 - Variables serveur

Voici la liste des variables d'environnement positionné à chaque requête (spécifique au serveur)

SERVER_SOFTWARE
Nom et version du serveur et éxécutant l'opération. Format : nom/version
SERVER_NAME
Adresse du serveur. Alias DNS, ou addresse IP tel qu'il a été spécifié dans la requête dans l'URL.
GATEWAY_INTERFACE
Numéro de version de l'interface CGI qu'utilise le serveur. Format : CGI/version

2 - Variables client

Les variables d'environnement suivantes sont spécifiques aux requêtes, elles ont été placées par le navigateur client.

Voici la séquence pour obtenir à l'aide d'un script CGI en Perl la liste des variables d'environnement.

#!/usr/bin/perl
print "Content-type: text/html\n\n";
while(my ($n,$v) = each(%ENV)) {
  print "$n=$v<br>";
}
SERVER_PROTOCOL
Nom et numéro de version du protocole qui lancé la requête. Format : protocole/Numero. Ex: HTTP/1.1
SERVER_PORT
Le port du serveur visé. Ex: 80
REQUEST_METHOD
Méthode demandée. Pour HTTP, sont possibles "GET", "HEAD", "POST", etc.
PATH_INFO
L'URL après la partie http://<adresse>/ donné par le client. En d'autres termes, l'adresse sur l'arborescence du serveur.
PATH_TRANSLATED
Le serveur effectue une transformation de PATH_INFO, donne l'adresse réelle du document (et non une adresse virtuelle).
SCRIPT_NAME
L'adresse du script utilisé. Utile pour l'auto-référence dans une URL d'un script.
QUERY_STRING
Il s'agit de l'information placée à la suite du point d'interrogation dans l'URL dans le cas d'une requête GET. Il s'agit des paramètres du script avec cette méthode. Chaine uuencodé.
REMOTE_HOST
Le nom DNS de la machine. Si le serveur n'obtient pas l'information, le champ est positionné à vide et seule la variable REMOTE_ADDR sera positionné.
REMOTE_ADDR
L'adresse IP du client émettant la requête.
AUTH_TYPE
Si le serveur supporte l'authentification client et que le script est protégé, il s'agit du protocole utilisé par l'utilisateur.
REMOTE_USER
Si le serveur supporte l'authentification client et que le script est protégé, il s'agit du nom d'utilisateur.
REMOTE_IDENT
Si le protocole HTTP du serveur supporte l'identification définié dans la RFC 931, il s'agit du nom d'utilisateur. L'usage veut que cette variable ne soit utilisée que pour la connection.
CONTENT_TYPE
Type des données soumises à l'aide des méthodes POST et PUT.
CONTENT_LENGTH
Longueur des données envoyées par le client.

3 - Champs supplémentaires

En addition de cela, les lignes d'entêtes envoyées par le client, si jamais il y en a, sont préfixées par le préfixe HTTP_ suivi du nom de l'entête.Tout caractère - dans le nom sera changé en _. Le serveur doit exclure les champs déjà existants, comme Authorization, Content-type, et Content-length.

Si nécessaire, le serveur peut choisir d'exlure une ou toutes les entêtes si celles-ci pertubent le système.

Un exemple de cela est la variable HTTP_ACCEPT qui est définie dans CGI/1.0. Un autre exemple est le champ  User-Agent.

HTTP_ACCEPT
Types MIME supportés par le client, tel que spécifié par les entêtes de HTTP. Chaque item de la liste doit être séparé par une virgule, comme spécifié dans la norme HTTP.
Format: type/subtype, type/subtype
HTTP_USER_AGENT
Le browser utilisé par le client.
Format general : software/version library/version.