title: Variables d'environnement CGI
text: # 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.
  