Pour
obtenir des informations sur votre configuration et l'URL précédemment
visitée, les variables d'environnement sont utilisées
elles sont définies dans votre navigateur et que ce dernier
envoie systématiquement au serveur.
1)
Théorie pour une communication
Si
l'on tentait de schématiser l'ensemble des règles
et procédures à suivre pour établir une communication
téléphonique, on pourrait aisément distinguer
deux niveaux de ce qu'il convient d'appeler des protocoles.
Le
premier niveau, le plus bas, est indispensable à l'établissement
physique de la communication, c'est le niveau le plus technique
qui permet, entre autres, de composer le numéro d'un correspondant,
de générer une sonnerie sur son poste, d'établir
la communication, de maintenir le transfert de la voix dans les
deux sens et en même temps au travers de la ligne et enfin
de terminer la communication.
Le
second niveau, supérieur au précédent car plus
accessible aux locuteurs, n'est pas indispensable à la communication
technique proprement dite mais à la communication humaine,
il part d'un accord sur la langue utilisée par les deux locuteurs
en passant par les conventionnels "Allô ?", "Qui
est à l'appareil ?", etc.
Sur
Internet, on pourrait faire la même observation. Pour que
les informations soient correctement transférées de
votre ordinateur au serveur, un protocole est nécessaire
afin que les différents appareils situés entre vous
et lui soient à même de les transporter. Il s'agit
du protocole TCP/IP. On représente généralement
l'architecture d'un protocole en couches. Tout en bas, la couche
matérielle correspond (schématiquement) aux câbles
et aux cartes utilisés (Ethernet par exemple), puis la couche
réseau gère la circulation des paquets à travers
le réseau (IP) , la couche transport gère le flux
de données entre deux machines (TCP), enfin, la couche supérieure,
la couche applicative, gère les détails de communication
d'une application particulière entre le serveur et le client
(HTTP, par exemple, si vous êtes "sur le web", ou
bien FTP, pour le transfert de fichiers). La couche supérieure
correspond au dialogue établit entre les deux applications
client/serveur, comme par exemple votre navigateur et le serveur
web.
2)
HTTP, Javascript et Cie
Au
niveau HTTP, donc, chacune de vos requêtes contient un certain
nombre d'informations, à commencer par ce que vous avez à
demander : l'adresse d'une page web généralement.
Mais elle contient également de nombreuses informations sur
l'environnement de votre ordinateur.
Ces
informations sont systématiquement transmises dans chaque
paquet qui part de votre ordinateur vers le serveur. Lorsque le
paquet arrive sur le serveur, un processus système est créé
sur la machine, processus qui intègre ces informations sous
forme de variables d'environnement et exécute la requête
demandée. Autant d'informations que le serveur peut ajouter
à celles dont il pourrait disposer également par ailleurs.
Concrètement, voici les variables d'environnement et leur
contenu tel que nous l'avons reçu de votre navigateur, par
exemple :
REMOTE_HOST = tnt1-196.dan.nan2.inetway.net REMOTE_ADDR =
212.208.1.196 HTTP_USER_AGENT = Mozilla/4.02 [en] (Win95; I)
HTTP_REFERER = http://securinet.free.fr/traces.html
Un
script sur le serveur peut les analyser pour vous les présenter
plus clairement, par exemple :
Votre adresse DNS : tnt1-196.dan.nan2.inetway.net
Votre adresse IP : 212.208.1.196 Votre système d'exploitation
: Microsoft Windows 98 Votre navigateur : Netscape Communicator
4.02 anglais Votre page précédente : http://securinet.free.fr/traces.html
3)Adresse
IP, adresse DNS et signature du navigateur
Un
script CGI analyse les variables d'environnement suivantes (REMOTE_HOST,
REMOTE_ADDR et HTTP_USER_AGENT). REMOTE_HOST et REMOTE_ADDR retournent
au serveur l'adresse DNS et l'adresse IP de votre machine. Si l'adresse
DNS n'y figure pas, c'est que votre machine n'a pas été
enregistrée dans le serveur de DNS.
HTTP_USER_AGENT
est la signature du navigateur client. A partir de celle-ci, nous
déterminons quel est le système d'exploitation, quelles
sont les caractéristiques du navigateur (marque, modèle
et, éventuellement, numéro de version) et la version
linguistique du navigateur. Pour obtenir ces informations, il faut
utiliser une table de correspondance entre les éléments
de la signature du navigateur et les signatures connues (par exemple,
on sais que la chaîne de caractère "WinNT"
est contenue dans la signature d'un navigateur Netscape tournant
sous Microsoft Windows NT ou que "Windows 95" est contenue
dans la signature d'un navigateur Internet Explorer tournant sous
Microsoft Windows 95).
Il
est également possible pour le serveur de récupérer
ces variables à l'aide d'un Javascript. Javascript est un langage de script
dont les instructions s'intègrent sous forme textuelle à
l'intérieure des pages HTML et que le navigateur exécute
lorsqu'il charge la page. Attention, à ne pas confondre Javascript
et applet Java.
4)
Lien précédemment suivi
Un
script CGI est chargé d'analyser la variable d'environnement
HTTP_REFERER, et d'en extraire les informations suivantes sur la
dernière page vue par le navigateur client : protocole utilisé,
adresse DNS ou IP du serveur, chemin d'accès à la
ressource, et ressource demandée (page, image, cgi ...).

|