L’échange d’informations sur Internet s’effectue sur un modèle client-serveur. Le client envoie une requête (quels fichiers il a besoin) et le serveur envoie une réponse (quels fichiers il a besoin). Pour une coopération étroite (compréhension complète) entre le client et le serveur, le client envoie des informations supplémentaires sur lui-même : la version et le nom du système d’exploitation, la configuration du navigateur (y compris son nom et sa version), etc.
Ces informations sont requises par le serveur pour savoir quelle page Web fournir au client. Il existe plusieurs variantes de pages Web différentes pour différentes configurations de navigateur. Cependant, les pages Web ne dépendent généralement pas du navigateur, il est donc tout à fait possible de cacher ces informations au serveur Web.

Données que le navigateur envoie au serveur Web
- Nom et version du système d’exploitation
- Nom et version du navigateur
- Configuration du navigateur (résolution d’affichage, profondeur de couleur, support java/javascript)
- Adresse IP du client
- Autres informations
La partie la plus importante de ces informations et non requises par le serveur Web est l’information sur l’adresse IP. À partir de l’IP, les informations suivantes peuvent être obtenues :
- Pays d’origine de la PI
- La ville d’origine de la PI
- Nom et adresse e-mail du fournisseur de services
- L’adresse électronique du propriétaire de la propriété intellectuelle
Variables d’environnement
Les informations envoyées par le client au serveur sont accessibles par le serveur en tant que variables d’environnement. Chaque unité d’information est la valeur d’une variable. Si aucune unité d’information n’est transmise, la variable correspondante sera vide (la valeur n’est pas spécifiée).
Voici quelques variables d’environnement :
REMOTE_ADDR ? L’adresse IP du client
HTTP_VIA ? S’il n’est pas vide, un proxy est utilisé. La valeur est l’adresse (ou les adresses) du serveur proxy, cette variable est ajoutée par le serveur proxy lui-même si vous l’utilisez.
HTTP_X_FORWARDED_FOR ? S’il n’est pas vide, un proxy est utilisé. La valeur est l’adresse IP d’origine du client (votre IP), cette variable est également ajoutée par le serveur proxy si vous l’utilisez.
HTTP_ACCEPT_LANGUAGE ? Quelle langue est utilisée dans le navigateur (quelle langue doit être affichée sur la page)
HTTP_USER_AGENT ? Aussi appelé « agent utilisateur ». Pour tous les navigateurs, il s’agit de Mozilla. En outre, le nom et la version du navigateur (par exemple MSIE 5.5) et du système d’exploitation (par exemple Windows 10) sont également mentionnés ici.
HTTP_HOST ? est le nom du serveur Web
En plus des variables mentionnées ci-dessus, il existe de nombreuses autres variables environnementales telles que DOCUMENT_ROOT, HTTP_ACCEPT_ENCODING, HTTP_CACHE_CONTROL, HTTP_CONNECTION, SERVER_ADDR, SERVER_SOFTWARE, SERVER_PROTOCOL et autres. Le nombre de variables dépend des paramètres du serveur et du client.
Voici des exemples de valeurs de variable :
REMOTE_ADDR = 194.5.1.1
HTTP_ACCEPT_LANGUAGE = ru
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 5.0; Windows XP)
HTTP_HOST = www.webserver.ru
HTTP_VIA = 194.5.1.1 (calmar/2.4.STABLE7)
HTTP_X_FORWARDED_FOR = 194.5.5.5