Serveurs mandataires ("Proxy")
- Proxy = logiciel servant d'intermédiaire entre un client WWW (Netscape, Mosaic, etc.) et le reste de l'Internet. Il faut bien entendu que le client soit configuré pour avoir connaissance du proxy.
- Très utile lorsqu'un site se trouve derrière une "barrière anti-feu" (firewall)
- Quel que soit le protocole d'une URL, le client communique avec le serveur proxy via le protocole HTTP et c'est le serveur proxy qui communiquera selon le protocole ad-hoc avec le serveur à distance qui est mentionné dans l'URL
- Il est généralement possible de configurer le client pour qu'il accède à certains serveurs sans passer par le proxy (par exemple pour accéder à des serveurs qui se trouveraient dans l'enceinte du mur pare-feu)
- Le serveur proxy gère généralement un cache disque qui permet d'éviter plusieurs accès externes lorsque plusieurs utilisateurs du proxy accèdent aux mêmes documents (il est question de 20-40% d'économie au niveau du trafic externe)
- Les serveurs proxy peuvent être configurés en une hiérarchie permettant à un proxy "local" d'avoir accès à des proxys "frères" et des proxys "parents". Lorsque le proxy local doit fournir un document qu'il n'a pas dans son cache, il demande d'abord à ses proxys "frères" s'ils ont le document en question. Si un d'eux l'a, il le fournira au proxy local qui, à son tour, le fournira à la machine cliente. Si aucun des proxys frères n'a le document, le proxy local s'adresse alors à un proxy "parent", lequel procèdera de façon similaire en relayant la requête au niveau hiérarchique supérieur. La requête peut ainsi remonter de proxy en proxy (local, régional, national, continental) jusqu'à ce qu'un proxy ait le document demandé, ou que le document n'est pas dans le domaine d'un des proxys parents, ou que le dernier proxy sollicité n'ait pas de proxy parent. Si le document n'a pas été trouvé dans le cache d'un des proxys, le dernier proxy contacté s'adressera directement au site mentionné dans l'URL et fournira alors le document reçu à son descendant direct qui le lui a demandé, lequel le retransmettra à son descendant direct et ainsi de suite, jusqu'à ce que le document parvienne à l'utilisateur qui l'aura initialement demandé.
- Un proxy ne transmet une requête à un de ses proxys parents que si le document demandé est encore du ressor du ou des parents en question. P.ex. un document résidant sur un serveur suisse et demandé par un utilisateur suisse ne sera jamais demandé au proxy national, ni au proxy continental. Le proxy local va interroger ses "frères" proxys locaux suisses et, en cas de réponse négative, va directement demander au serveur (suisse) où réside le document. Si un utilisateur suisse demande un document résidant sur un serveur français, la requête va potentiellement être transmise au serveur proxy suisse de niveau national, lequel pourra éventuellement interroger son "frère" français de niveau national. Si ce dernier n'a pas le document dans son cache, le serveur proxy national (suisse) enverra la requête au serveur français où le document réside et transmettra ensuite le document au serveur proxy local de l'utilisateur, lequel transmettra enfin le document à l'utilisateur. Ce n'est que pour des requêtes provenant d'Europe et pour des documents ne résidant pas sur un serveur européen que le serveur proxy au niveau européen interviendra.
- Un serveur proxy est généralement configuré pour ne pas vérifier ailleurs que dans son cache si la copie se trouvant dans son cache est suffisamment récente (TTL=Time To Live, souvent de l'ordre de cinq minutes). Cela vaut même pour des réponses contenant des messages d'erreur. P.ex. si un proxy a eu un "timeout" lors de l'accès à un document, pendant un certain laps de temps, une nouvelle requête pour le même document recevra le message d'erreur se trouvant dans le cache, même si le site où réside le document est de nouveau accessible.
- Internet draft: Web Cache Coordination Protocol V1.0 (copie locale)
- Internet draft: Cachebusting - cause and prevention (copie locale)
- Cooperative Hierarchical Object Caching (CHOC - projet européen pour un réseau de proxys coopérants)
- Squid Internet Object Cache. Voir aussi SQUID mailing list archive.
- ircache mailing list archive.
- La Cache page de SingNet (beaucoup de pointeurs utiles vers des sources d'information en relation avec les proxys)
- Internet Draft draft-ietf-wrec-taxonomy-03.txt: Internet Web Replication and Caching Taxonomy
- Internet Draft draft-ietf-wrec-known-prob-01.txt: Known HTTP Proxy/Caching Problems
- RFC 2186: Internet Cache Protocol (ICP), version 2, voir aussi le site Internet Cache Protocol
- RFC 2756: Hyper Text Caching Protocol (HTCP/0.0)
- Lessons Learned Administering Netscape's Internet Site (protégé par mot de passe), par Michael Baentsch, Lothar Baum, Georg Molter, Steffen Rothkugel et Peter Sturm (copie locale accessible sans mot de passe uniquement depuis la Suisse). Attention: document PDF nécessitant Acrobat Reader.
- Caching Proxies: Limitations and Potentials, Marc Abrams, Charles R. Standridge, Ghaleb Abdulla, Stephen Williams, Edward A. Fox, 4ème conférence WWW.
- Performance Engineering of the World Wide Web: Application to Dimensioning and Cache Design, Jean-Chrysostome Bolot, Philipp Hoschka; 5ème conférence WWW