Variables d'environnement CGI

Les variables d'environnement CGI sont des variables transmises à un programme CGI, par le serveur Web l'invoquant, lors de son exécution.

Elles fournissent des informations sur la requête effectuée par le client, sur le serveur et également sur le client lui-même. Par exemple, lorsqu'on effectue une recherche sur un site qui fonctionne avec des CGI, le script récupérera les termes de la recherche avec la variable d'environnement « QUERY_STRING ».

Liste des variables CGI

Variables en rapport avec le serveur 
 SERVER_SOFTWARE
Le nom et la version du serveur HTTP répondant à la requête. (Format : nom/version)
 SERVER_NAME
Le nom d'hôte, alias DNS ou adresse IP du serveur.
 GATEWAY_INTERFACE
La révision de la spécification CGI que le serveur utilise. (Format : CGI/révision)

Variables spécifiques à la requête 
 SERVER_PROTOCOL
Le nom et la révision du protocole dans lequel la requête a été faite (Format : protocole/révision)
 SERVER_PORT
Le numéro de port sur lequel la requête a été envoyée.
 REQUEST_METHOD
La méthode utilisée pour faire la requête. Pour HTTP, elle contient généralement « GET » ou « POST ».
 PATH_INFO
Le chemin supplémentaire du script tel que donné par le client. Par exemple, si le serveur héberge le script « /cgi-bin/monscript.cgi » et que le client demande l'url « http://serveur.org/cgi-bin/monscript.cgi/marecherche », alors PATH_INFO contiendra « marecherche ».
 PATH_TRANSLATED
Contient le chemin demandé par le client après que les conversions virtuel → physique ont été faites par le serveur.
 SCRIPT_NAME
Le chemin virtuel vers le script étant exécuté. Exemple : « /cgi-bin/script.cgi »
 QUERY_STRING
Contient tout ce qui suit le « ? » dans l'URL envoyée par le client. Toutes les variables provenant d'un formulaire envoyé avec la méthode « GET » seront contenues dans le QUERY_STRING sous la forme « var1=val1&var2=val2&... ».
 REMOTE_HOST
Le nom d'hôte du client. Si le serveur ne possède pas cette information (par exemple, lorsque la résolution DNS inverse est désactivée), REMOTE_HOST sera vide.
 REMOTE_ADDR
L'adresse IP du client.
 AUTH_TYPE
Le type d'identification utilisé pour protéger le script (s’il est protégé et si le serveur supporte l'identification).
 REMOTE_USER
Le nom d'utilisateur du client, si le script est protégé et si le serveur supporte l'identification.
 REMOTE_IDENT
Nom d'utilisateur (distant) du client faisant la requête. Le serveur doit supporter l'identification RFC 931. Cette variable devrait être utilisée à des fins de journaux seulement.
 CONTENT_TYPE
Le type de contenu attaché à la requête, si des données sont attachées (comme lorsqu'un formulaire est envoyé avec la méthode « POST »).
 CONTENT_LENGTH
La longueur du contenu envoyé par le client.

Variables provenant du client 
Toutes les variables qui sont envoyées par le client sont aussi passées au script CGI, après que le serveur a rajouté le préfixe « HTTP_ ». Voici quelques exemples de variables possibles :
 HTTP_ACCEPT
Les types de données MIME que le client accepte de recevoir.
Exemple : text/*, image/jpeg, image/png, image/*, */*
 HTTP_ACCEPT_LANGUAGE
Les langues dans lequel le client accepte de recevoir la réponse.
Exemple : fr_CA, fr
 HTTP_USER_AGENT
Le navigateur utilisé par le client.
Exemple : Mozilla/5.0 (compatible; Konqueror/3; Linux)
 HTTP_COOKIE
Les éventuels cookies. Une liste de paires clef=valeur contenant les cookies positionnés par le site, séparés par des points-virgules.
 HTTP_REFERER
Une adresse absolue ou partielle de la page web à partir de laquelle la requête vers la page courante a été émise.

Articles connexes 
 Variable d'environnement

Serveur web