CGI - Les variables d'environnement

D├ęcembre 2016

Notion de variable d'environnement

Les variables d'environnement sont des données stockées dans des variables du système et permettent aux programmes d'avoir des informations sur son environnement. Dans le cas du programme CGI, l'environnement est notamment composé des éléments suivants :

  • Informations sur le serveur
  • Informations sur le client

Des variables sont créées par le serveur à chaque fois que le programme CGI est appelé. Le serveur les lui fournit en paramètres cachés lors de l'exécution de l'interpréteur.

Les variables d'environnement permettent notamment d'avoir des informations sur le type de serveur, son administrateur, la date à laquelle le CGI a été appelé, l'adresse IP et le type de navigateur du client.

Les variables d'environnement

Les variables d'environnement peuvent être classées en deux catégories :

  • Les variables d'environnement relatives au client
  • Les variables d'environnement relatives au serveur

Les variables d'environnement relatives au client

Variable d'environnement Description
AUTH_TYPE Il s'agit de la méthode d'authentification qui a été utilisée par le client pour accéder au programme CGI
CONTENT_LENGTH Longueur du corps de la requête. Il s'agit de la taille des données envoyées au CGI par l'intermédiaire de la méthode POST d'un formulaire
CONTENT_TYPE Type de données contenu dans le corps de la requête. Il s'agit du type MIME des données
HTTP_COOKIE Cookie du client si jamais un cookie est effectivement présent sur le disque du client
HTTP_REFERER URL de la page qui a appelé le script CGI
HTTP_REQUEST_METHOD Cette variable indique le type de méthode utilisée pour envoyer les données au programme CGI. Il s'agit de GET, HEAD, POST, PUT ou DELETE. Dans le cas de la méthode GET, les données sont encodées avec l'URL de requête, dans le cas de la méthode POST, par contre, les données présentes dans le corps de la requête sont accessibles via le fichier de flux d'entrée standard nommé STDIN
HTTP_USER_AGENT Cette variable permet d'avoir des informations sur le type de navigateur utilisé par le client, ainsi que son système d'exploitation
PATH Il s'agit du chemin d'accès au script CGI
PATH_INFO Il s'agit de la partie de l'URL (ayant servi à accéder au script CGI) située avant le point d'interrogation. Il s'agit donc du chemin d'accès au script CGI sans prendre en compte les données supplémentaires
PATH_TRANSLATED Il s'agit du chemin d'accès absolu au script CGI, c'est-à-dire l'emplacement absolu du script sur le serveur
QUERY_STRING Il s'agit de la partie de l'URL (ayant servi à accéder au script CGI) située après le point d'interrogation. C'est de cette manière que sont transmises les données d'un formulaire dans le cas de la méthode GET
REMOTE_ADDR Cette variable contient l'adresse IP du client appelant le script CGI
REMOTE_USER Cette variable n'existe que si le client a été soumis à une authentification, et contient alors le couple nom_d_utilisateur/mot_de_passe
SCRIPT_FILENAME Chemin d'accès complet au script CGI
SCRIPT_NAME Chemin d'accès relatif (par rapport au chemin d'accès à la racine web) au script CGI
SERVER_PORT Port TCP auquel les données ont été envoyées (généralement le port 80)
SERVER_PROTOCOL Nom et version du protocole utilisé pour envoyer la requête au script CGI

Les variables d'environnement dépendant du serveur

Variable d'environnement Description
DATE_GMT Date actuelle au format GMT
DATE_LOCAL Date actuelle au format local
DOCUMENT_ROOT Racine des documents Web sur le serveur
GATEWAY_INTERFACE Version des spécifications CGI utilisées par le serveur
HTTP_HOST Nom de domaine du serveur
SERVER_ADMIN Adresse électronique de l'administrateur du serveur
SERVER_SOFTWARE Type (logiciel) du serveur web

Affichage des variables d'environnement

Il est possible de créer un script permettant de visualiser l'ensemble des variables d'environnement. Voici un exemple de script écrit en Perl :

#!/usr/local/bin/perl
print "content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>Variables d'environnement</TITLE></HEAD>\n";
print "<BODY>\n";

foreach $key (sort(keys %ENV)) {
  print "$key = $ENV{$key}<BR>\n";
}
print "</BODY>";

A voir également :

Ce document intitulé «  CGI - Les variables d'environnement  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.