Brevet FR2873882A1 — publié le 20060203

PROCEDE ET DISPOSITIF DE DISTINCTION DE REQUETES HTTP UTILISATEUR La présente invention concerne le domaine de la communication entre des équipements d'un réseau de télécommunication de type Internet, notamment entre un dispositif client et un serveur Web. L'invention concerne plus particulièrement un procédé et un dispositif de distinction de requêtes HTTP émises sur un réseau de télécommunication d'un dispositif client équipé d'un navigateur vers un serveur Web. La communication entre un dispositif client et un serveur Web est en effet basée sur le protocole HTTP (acronyme anglo-saxon pour "Hyper Text Transfert Protocol"). Dans la pratique, le protocole HTTP permet d'accéder, via le réseau de télécommunication, à des fichiers, essentiellement au format HTML ("Hyper Text Markup Language"), lesquels sont identifiés par une adresse unique appelée URL ("Uniform Resource Locator"). Le protocole HTTP permet ainsi d'échanger des fichiers HTML entre un dispositif client et un serveur Web. Le dispositif client doit alors être équipé d'une ressource spécifique, appelée navigateur ("Browser" en anglais), qui est le logiciel client capable d'interroger les serveurs Web, d'exploiter leurs résultats et de mettre en page les informations grâce aux instructions contenues dans la page HTML. Lorsqu'un navigateur effectue une requête, typiquement par saisie ou clic d'un URL par un utilisateur, la communication entre le navigateur et le serveur Web se déroule de la façon suivante, comme illustré schématiquement à la figure 1: - les données de requête sont envoyées au serveur 20 par le dispositif client 10 sous forme d'une méthode d'accès, d'une URL, d'une version de protocole et d'en- têtes de requête HTTP, permettant notamment d'identifier le fichier demandé, l'adresse IP du demandeur, etc. - lorsque le serveur 20 reçoit la requête HTTP, il traite la requête en analysant la méthode d'accès, l'URL, la version de protocole et les en- têtes HTTP, notamment l'élément permettant de localiser le fichier demandé, puis envoie une réponse HTTP au dispositif client (le navigateur) . Un serveur proxy peut également être mis en oeuvre dans le cadre de la communication HTTP entre le dispositif client et le serveur Web. Ainsi, lorsqu'un utilisateur se connecte à Internet à l'aide d'un navigateur configuré pour utiliser un serveur proxy, celui-ci va se connecter en premier lieu au serveur proxy et lui donner sa requête. Le serveur proxy va alors se connecter au serveur que le navigateur cherche à joindre et lui transmettre la requête. Le serveur va ensuite donner sa réponse au proxy, qui va à son tour la transmettre au navigateur. Le dispositif client 10 est typiquement un ordinateur, mais peut être remplacé par tout autre équipement apte à envoyer une requête HTTP, de même le serveur proxy peut être remplacé par un routeur ou par tout autre équipement du réseau Internet. La page HTML reçue en réponse par le navigateur et qui correspond à l'URL demandée par l'utilisateur, comprend également une pluralité d'objets prévus pour satisfaire à des besoins d'affichage et de mise en page par exemple et qui découlent d'une interprétation du code HTML reçu par le navigateur. En effet, dans le code HTML de la page demandée par l'utilisateur, se trouvent les références aux objets qui permettent de constituer la page. Ces objets peuvent être des images, des logos ou encore des feuilles de style. Tous ces différents objets dans la page n'ont donc pas été obtenus à la demande explicite de l'utilisateur, c'est-à-dire par la saisie d'une URL par l'utilisateur dans le navigateur ou par l'activation d'un lien hypertexte effectuée par l'utilisateur, mais correspondent en fait à des URL demandées de manière implicite par le navigateur lors de l'affichage et de la mise en page de la page Web. On peut donc distinguer les requêtes HTTP émises explicitement par l'utilisateur (saisie d'une URL dans le navigateur ou clic sur un lien hypertexte), des requêtes HTTP implicitement émises par le navigateur, par exemple à des fins d'affichage et de mise en page, et qui sont la conséquence de la première requête explicite de l'utilisateur. Actuellement, le protocole HTTP ne dispose d'aucune spécification standard ni ne prévoit d'implémentation permettant à un navigateur d'effectuer une telle distinction entre les requêtes HTTP explicites de l'utilisateur et requêtes implicites générées par le navigateur lors de l'affichage et de la mise en page d'une page Web. Or, les requêtes implicitement émises par le navigateur peuvent être considérées comme du bruit et freinent la mise en place de services à valeur ajoutée dans le réseau basés sur une analyse et un suivi des requêtes utilisateurs. Les requêtes implicites sont ainsi inévitablement répertoriées et empêchent d'obtenir une représentation suffisamment exploitable des informations de navigation de l'utilisateur internaute, pour un service de profilage par exemple. Aussi, un but de la présente invention est de remédier à ces inconvénients en permettant de réaliser la distinction, à des fins d'exploitation dans le réseau, entre les requêtes explicites de l'utilisateur et les requêtes implicites du navigateur. Avec cet objectif en vue, l'invention a pour objet un procédé de distinction d'une requête HTTP émise sur un réseau de télécommunication d'un dispositif client équipé d'un navigateur vers un serveur Web, caractérisé en ce qu'il comporte le marquage de la requête HTTP lorsque ladite requête est émise explicitement par l'utilisateur. Une requête HTTP émise explicitement par l'utilisateur correspond à la saisie par l'utilisateur d'une adresse URL dans le navigateur ou à une activation d'un lien hypertexte effectuée par l'utilisateur. Selon un mode de réalisation, le marquage de la requête HTTP est réalisé par le navigateur du dispositif client. Selon un autre mode de réalisation le marquage de la requête HTTP est réalisé par un service intégré au réseau. Selon ce dernier mode de réalisation, le service intégré au réseau met en uvre les étapes suivantes consistant à : a- recevoir une première requête HTTP du dispositif client; b- marquer ladite requête c- transmettre ladite requête vers le serveur; d- recevoir la réponse HTTP correspondante du serveur; e- mémoriser dans une base de données les URL correspondant à des objets inclus dans ladite réponse susceptibles de conduire à des requêtes HTTP demandées implicitement par le navigateur; f- transmettre ladite réponse au dispositif client et, g- pour chaque requête HTTP suivante reçue du dispositif client et non référencée dans ladite base de données, réitérer les étapes b à g. De préférence, une date de péremption est associée à chaque URL mémorisée dans la base de données, et on supprime toutes les URL dans la base de données dont la date de péremption associée est dépassée. Avantageusement, l'adresse IP du dispositif client est associée à chaque URL mémorisée dans la base de données. De préférence, le marquage de la requête HTTP consiste en l'ajout d'un entête spécifique dans ladite requête HTTP. L'invention concerne encore un dispositif de distinction de requêtes HTTP émises sur un réseau de télécommunication d'un dispositif client équipé d'un navigateur vers un serveur Web, caractérisé en ce qu'il comprend: un équipement de réseau apte à recevoir des requêtes HTTP du dispositif client et à les transmettre vers le serveur Web et à recevoir les réponses correspondantes du serveur et à les transmettre vers le dispositif client, - un module de traitement des réponses reçues du serveur Web par ledit équipement de réseau, comprenant des moyens pour déterminer les URL correspondant à des objets inclus dans lesdites réponses susceptibles de conduire à des requêtes HTTP demandées implicitement par le navigateur, une base de données pour mémoriser lesdites URL, et - un module de traitement des requêtes reçues du dispositif client par ledit équipement de réseau, comprenant des moyens pour marquer lesdites requêtes si elles ne sont pas référencées dans ladite base de données. Selon un mode de réalisation, le module de traitement des requêtes HTTP comprend un serveur iCAP et le module de traitement des réponses HTTP comprend un serveur iCAP. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures annexées dans lesquelles: -la figure 1, déjà décrite, illustre de façon schématique le processus de communication entre un dispositif client et un serveur Web selon le protocole HTTP, et -la figure 2 illustre un mode de réalisation de l'invention. Selon un premier mode de réalisation de l'invention, lorsque la requête HTTP fait suite à une action de l'utilisateur sur le navigateur, ce dernier est prévu pour marquer la requête avant de l'envoyer vers le serveur Web demandé. L'action de l'utilisateur sur le navigateur se traduit par la saisie d'une adresse URL dans le navigateur ou encore par l'activation par l'utilisateur d'un lien hypertexte. Le marquage de la requête par le navigateur consiste selon un mode de réalisation préféré de l'invention à ajouter un champ spécifique dans l'en-tête HTTP de la requête. L'en-tête HTTP ajoutée peut par exemple être de la forme suivante: X-UserAction: explicit En revanche, les requêtes suivantes implicitement envoyées par le navigateur et correspondant typiquement à des objets référencés dans le contenu de la réponse HTTP reçue, ne seront pas marquées par le navigateur. Un second mode de réalisation est décrit en référence à la figure 2, dans lequel la fonction de marquage des requêtes HTTP explicites est déportée vers un dispositif intégré au réseau. Un tel dispositif selon l'invention comprend un équipement de réseau 30, apte à recevoir des requêtes HTTP du dispositif client 10 et à les transmettre vers le serveur Web 20, ainsi qu'à recevoir les réponses HTTP correspondantes du serveur Web 20 et à les transmettre vers le dispositif client 10. l'équipement de réseau 30 peut être un serveur proxy. Il peut également être un routeur, un commutateur ou tout autre équipement assurant une fonction équivalente. Le dispositif selon l'invention comprend également un module 50 de traitement des réponses HTTP reçues du serveur Web 20 par le serveur proxy 30. Le module de traitement des réponses 50 comprend des moyens pour déterminer les adresses URL correspondant à des objets inclus dans les réponses HTTP susceptibles de conduire à des requêtes HTTP implicites du navigateur du dispositif client. Une fois ces adresses déterminées, le module 50 les extrait et les écrit dans une base de données 60 prévue pour mémoriser ces adresses URL. Le dispositif selon l'invention comprend également un module 40 de traitement des requêtes HTTP reçues du dispositif client 10 par le serveur proxy 30, comprenant des moyens pour marquer les requêtes si elles ne sont pas référencées dans la base de données 60. La base de données 60 comprend donc des moyens de liaison avec les modules de traitement 40 et 50. Selon un premier exemple de réalisation, les fonctions mises en oeuvre par les modules 40 et 50 peuvent être implémentées directement sur le serveur proxy 30. Selon un autre exemple de réalisation, les fonctions de traitement des requêtes et des réponses HTTP sont déportées du serveur proxy vers un serveur iCAP. Avantageusement, le module de traitement des requêtes HTTP est implémenté sur un premier serveur iCAP1, et le module de traitement des réponses HTTP est implémenté sur un second serveur iCAP2. Ainsi, la communication entre le serveur Proxy 30 et les modules de traitement 40 et 50 est basée sur un protocole d'adaptation de contenu de type iCAP, acronyme anglais de Internet Content Adaptation Protocol , défini par un groupe de sociétés dans le cadre de l'iCAP forum. L'utilisation de serveurs iCAP pour implémenter les modules 40 et 50 permet ainsi de travailler avec un serveur proxy quelconque, du fait du protocole de communication générique mis en oeuvre. Le dispositif intégré au réseau, associant le serveur proxy 30, les modules de traitement 40 et 50, implémentés dans l'exemple de réalisation par les serveurs iCAP1 et iCAP2, et la base de données 60 met en oeuvre, comme il sera vu maintenant plus en détail, une analyse croisée entre les requêtes et les réponses HTTP correspondantes, permettant d'effectuer une distinction entre les requêtes explicites et les requêtes implicites. Ainsi, le mécanisme de distinction des requêtes suit les étapes suivantes, en référence à la figure 2: Le serveur proxy 30 reçoit 61 la première requête du dispositif client 10 identifié par son adresse IP (IP1). Le serveur proxy transmet 62 cette requête au serveur iCAP1 40, ainsi que l'adresse IP (IP1) du dispositif client. Le serveur iCAP1 vérifie 63 dans la base de données 60 si cette requête est référencée dans la base de données pour cette adresse IP. En fait, comme il s'agit d'une première requête reçue d'un nouveau client, celleci n'est pas référencée et le serveur iCAP1 effectue un marquage de la requête. Plus particulièrement, il insère un champ spécifique dans l'entête HTTP de la requête, par exemple l'en-tête HTTP ajoutée peut être de la forme suivante: X-UserAction: explicit Le serveur iCAP1 transmet 64 alors la requête marquée au serveur proxy 30. Le serveur proxy 30 transmet 65 cette requête au serveur Web 20, ou d'une manière générale au travers des éléments suivants du réseau jusqu'au serveur 20. Le serveur proxy 30 reçoit 66 la réponse HTTP à cette requête et la transmet 67 au serveur iCAP2 ainsi que l'adresse IP IP1 du dispositif client 10. Le serveur iCAP2 analyse cette réponse et extrait du document, s'il s'agit d'un document textuel exploitable par le navigateur (page HTML, liste de fichiers dans un répertoire...), les liens vers les objets inclus dans l'objet que constitue la réponse, qui sont susceptibles de provoquer des requêtes implicites générées par le navigateur du dispositif client 10 à la réception par celui-ci de la réponse. Ces objets inclus sont référencés dans la réponse notamment par un code HTML de type IMG ou SRC . Les liens extraits par le serveur iCAP2 sont constitués par les adresses URL complètes vers les objets inclus. Le serveur iCAP2 ajoute 68 alors dans la base de données 60 pour l'adresse IP IP1, la liste des adresses URL vers les objets inclus et, pour chaque adresse ajoutée dans la base, génère de préférence une date de péremption associée dans la base, par exemple de l'ordre de la trentaine de secondes. La base de données 60 contient donc des entrées du type suivant: [Adresse IP du client (IPl)I URL 1 date de péremption] Une fois ces opérations effectuées, le serveur iCAP2 50 retourne 69 la réponse au serveur proxy 30, qui la transmet 70 au dispositif client 10. Le dispositif client reçoit la réponse et émet des requêtes suivantes, pour lesquelles le procédé de distinction décrit précédemment selon les étapes 61 à 70 se répète. Le mécanisme tourne en boucle tant que le dispositif client est connecté. Les requêtes suivantes émises correspondent éventuellement aux objets inclus dans la réponse précédemment reçue. Ainsi, le serveur proxy 30 reçoit 61 une requête suivante du dispositif client 10 identifié par son adresse IP IP1, et transmet 62 cette requête suivante au serveur iCAP1, ainsi que l'adresse IP1 du client. Le serveur iCAP1 vérifie 63 alors dans la base de données 60 si cette requête est référencée dans la base de données pour cette adresse IP. Si elle ne l'est pas, cela signifie que la requête ne correspond à aucune adresse URL précédemment mémorisée dans la base pour cette adresse IP et donc qu'il s'agit d'une requête explicite de l'utilisateur. Le serveur iCAP1 insère alors le champ spécifique X-UserAction: explicit dans l'en-tête HTTP de la requête, signifiant qu'il s'agit d'une requête explicite de l'utilisateur.. En revanche, si la requête est référencée dans la base et que la date de péremption associée n'est pas dépassée, le serveur iCAP1 ne marque pas la requête. La requête est alors retournée 64 au serveur proxy 30 et le procédé de distinction se poursuit selon les étapes déjà décrites tant que le client est connecté. Parallèlement, un processus de nettoyage de la base de données 60 est mis en oeuvre, consistant à éliminer toutes les adresses URL de la base dont la date de péremption est atteinte. Ce processus permet non seulement de maintenir une taille de base de données raisonnable, mais aussi d'éliminer toute référence à un dispositif client qui n'est plus connecté. Ainsi, l'ajout d'un marquage spécifique par le navigateur ou un système intégré au réseau lorsque la requête HTTP suit une action explicite de l'utilisateur permet d'obtenir un niveau d'information très fin sur le parcours de l'utilisateur et ses actions réelles. Cette distinction des requêtes explicitement demandées par l'utilisateur obtenues grâce à l'invention permet donc de mettre en oeuvre plusieurs services à valeur ajoutée. Au niveau du fournisseur d'accès à l'Internet, un service d'analyse et de suivi des requêtes explicites des utilisateurs peut ainsi être capable de tracer les URLs effectivement demandées par un utilisateur pour générer un arbre de navigation explicite de l'utilisateur. Le profil des utilisateurs ainsi obtenu peut alors être valorisé, notamment auprès des fournisseurs de publicités. Des service de gestion de présence au niveau applicatif peuvent également être mis en oeuvre. Par exemple, si l'on souhaite savoir quelle est la dernière URL demandée effectivement par l'utilisateur (et non le navigateur) pour, en fonction de cette URL, lui envoyer certaines informations. Egalement, au niveau des fichiers d'historique des serveurs Web, un service de valorisation peut suivre le cheminement des requêtes explicites des utilisateurs pour en déduire par exemple un positionnement approprié des publicités ou encore proposer des modifications permettant un accès plus rapide aux données. L'ensemble de la description ci-dessus â été faite dans un contexte où la communication entre le dispositif client et le serveur est basée sur l'utilisation du protocole HTTP. Toutefois, il convient de noter que la présente invention peut s'appliquer à d'autres protocoles, émergents et à venir, pour lesquels le problème d'une distinction entre requêtes explicites et requêtes implicites se pose. REVENDICATIONS 1. Procédé de distinction d'une requête HTTP émise sur un réseau de télécommunication d'un dispositif client (10) équipé d'un navigateur vers un serveur Web (20), caractérisé en ce qu'il comporte le marquage de la requête HTTP lorsque ladite requête est émise explicitement par l'utilisateur. 2. Procédé selon la revendication 1, caractérisé en ce qu'une requête HTTP émise explicitement par l'utilisateur correspond à la saisie par l'utilisateur d'une adresse URL dans le navigateur ou à une activation d'un lien hypertexte effectuée par l'utilisateur. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le marquage de la requête HTTP est réalisé par le navigateur du dispositif client. 4. Procédé selon la revendication. 1 ou 2, caractérisé en ce que le marquage de la requête HTTP est réalisé par un service intégré au réseau. 5. Procédé selon la revendication 4, caractérisé en ce que le service intégré au réseau met en uvre les étapes suivantes consistant à : arecevoir (61) une première requête HTTP du dispositif client (10) ; bmarquer ladite requête; c- transmettre (65) ladite requête vers le serveur (20) ; d- recevoir (66) la réponse HTTP correspondante du 5 serveur; emémoriser (68) dans une base de données (60) les URL correspondant à des objets inclus dans ladite réponse susceptibles de conduire à des requêtes HTTP demandées implicitement par le navigateur; f- transmettre (70) ladite réponse au dispositif client et, g- pour chaque requête HTTP suivante reçue du dispositif client et non référencée dans ladite base de données, réitérer les étapes b à g. 6. Procédé selon la revendication 5, caractérisé en ce qu'une date de péremption est associée à chaque URL mémorisée dans la base de données (60), et en ce qu'on supprime toutes les URL dans la base de données (60) dont la date de péremption associée est dépassée. 7. Procédé selon la revendication 5 ou 6, caractérisé en ce que l'adresse IP du dispositif client (10) est associée à chaque URL mémorisée dans la base 25 de données. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en que le marquage de la requête HTTP consiste en l'ajout d'un en-tête spécifique dans ladite requête HTTP. 9. Dispositif de distinction de requêtes HTTP émises sur un réseau de télécommunication d'un dispositif client (10) équipé d'un navigateur vers un serveur Web (20), caractérisé en ce qu'il comprend: - un équipement de réseau (30) apte à recevoir des requêtes HTTP du dispositif client et à les transmettre vers le serveur Web et à recevoir les réponses correspondantes du serveur et à les transmettre vers le dispositif client, - un module (50) de traitement des réponses reçues du serveur Web (20) par ledit équipement de réseau (30), comprenant des moyens pour déterminer les URL correspondant à des objets inclus dans lesdites réponses susceptibles de conduire à des requêtes HTTP demandées implicitement par le navigateur, - une base de données (60) pour mémoriser lesdites URL, et - un module (40) de traitement des requêtes reçues du dispositif client (10) par ledit équipement de réseau (30), comprenant des moyens pour marquer lesdites requêtes si elles ne sont pas référencées dans ladite base de données (60). 10. Dispositif selon la revendication 9, caractérisé en ce que le module de traitement (40) des requêtes HTTP comprend un serveur iCAP. 11. Dispositif selon la revendication 9 ou 10, caractérisé en ce que le module de traitement (50) des réponses HTTP comprend un serveur iCAP.