Partager via


Journalisation W3C

La journalisation étendue W3C est un type de journalisation côté serveur qui peut être activé sur la session de serveur ou le groupe d’URL. Lorsque la journalisation W3C est activée sur un groupe d’URL, la journalisation est effectuée uniquement sur les demandes routées vers le groupe d’URL. Un fichier journal distinct est créé pour chaque groupe d’URL configuré pour activer la journalisation W3C.

Lorsque la journalisation W3C est activée sur la session serveur, elle fonctionne comme une forme centralisée de journalisation pour tous les groupes d’URL sous la session serveur. Un fichier journal unique est conservé pour tous les groupes d’URL dans la session serveur.

Le tableau suivant répertorie les champs qui peuvent être enregistrés par l’API serveur HTTP. La table contient un sous-ensemble des constantes HTTP_LOG_FIELD . Certains des champs répertoriés ci-dessous sont générés automatiquement par l’API serveur HTTP en interne et ne sont donc pas contenus dans la structure HTTP_LOG_FIELDS_DATA . La colonne « Apparaît sous » contient le texte qui apparaît dans le fichier journal. Les données de la table sont dans l’ordre d’occurrence dans l’enregistrement du fichier journal.

Les champs qui ne sont pas marqués « API serveur HTTP générée » doivent être passés à l’intérieur de HTTP_LOG_FIELDS_DATA structure par application. L’application peut générer ces champs à partir de la structure HTTP_REQUEST qui lui est passée.

Champ Apparaît en tant que Description membre HTTP_LOG_FIELDS_DATA constantes HTTP_LOG_FIELDS
Date date Date à laquelle l’activité s’est produite. API de serveur HTTP générée. HTTP_LOG_FIELD_DATE
Temps time Heure, en temps universel coordonné (UTC), à laquelle l’activité s’est produite. API de serveur HTTP générée. HTTP_LOG_FIELD_TIME
Nom du service et numéro d’instance s-sitename Nom du service Internet et numéro de instance qui s’exécutait sur le client. NomService HTTP_LOG_FIELD_SITE_NAME
Nom du serveur s-computername Nom du serveur sur lequel l’entrée de fichier journal a été générée. ServerName HTTP_LOG_FIELD_COMPUTER_NAME
Adresse IP du serveur s-ip Adresse IP du serveur sur lequel l’entrée de fichier journal a été générée. ServerIp HTTP_LOG_FIELD_SERVER_IP
Méthode cs-method Verbe demandé, par exemple, une méthode GET. Méthode HTTP_LOG_FIELD_METHOD
Tige d’URI cs-uri-stem Cible du verbe, par exemple, Default.htm. UriStem HTTP_LOG_FIELD_URI_STEM
Requête URI cs-uri-query Requête, le cas échéant, que le client essayait d’effectuer. Une requête URI est nécessaire uniquement pour les pages dynamiques. UriQuery HTTP_LOG_FIELD_URI_QUERY
Port du serveur s-port Numéro de port du serveur configuré pour le service. ServerPort HTTP_LOG_FIELD_SERVER_PORT
User Name cs-username Nom de l’utilisateur authentifié qui a accédé au serveur. Les utilisateurs anonymes sont indiqués par un trait d'union. UserName HTTP_LOG_FIELD_USER_NAME
Adresse IP du client c-ip Adresse IP du client à l’origine de la demande. ClientIp HTTP_LOG_FIELD_CLIENT_IP
Version du protocole cs-version Version du protocole HTTP utilisée par le client. API de serveur HTTP générée. HTTP_LOG_FIELD_VERSION
User Agent cs(User-Agent) Type de navigateur utilisé par le client. UserAgent HTTP_LOG_FIELD_USER_AGENT
Cookie cs(Cookie) Contenu du cookie envoyé ou reçu, le cas échéant. Cookie HTTP_LOG_FIELD_COOKIE
Referrer cs(Referrer) Site que l’utilisateur a visité pour la dernière fois. Ce site a fourni un lien vers le site actuel. Referrer HTTP_LOG_FIELD_REFERRER
Host cs-host Nom d’en-tête d’hôte, le cas échéant. Host HTTP_LOG_FIELD_HOST
État HTTP sc-status Code d’état HTTP. ProtocolStatus HTTP_LOG_FIELD_STATUS
Sous-état de protocole sc-substatus Code d’erreur du sous-état. SubStatus HTTP_LOG_FIELD_SUB_STATUS
Win32 Status sc-win32-status Code status Windows. Win32Status HTTP_LOG_FIELD_WIN32_STATUS
Octets envoyés sc-octets Nombre d’octets envoyés par le serveur. API de serveur HTTP générée. HTTP_LOG_FIELD_BYTES_SENT
Octets reçus octets cs Nombre d’octets reçus et traités par le serveur. API de serveur HTTP générée. HTTP_LOG_FIELD_BYTES_RECV
Durée temps nécessaire Durée nécessaire à l’exécution de l’action, en millisecondes. API de serveur HTTP générée. HTTP_LOG_FIELD_TIME_TAKEN
ID de flux streamid ID de flux. API de serveur HTTP générée. HTTP_LOG_FIELD_STREAM_ID

 

Le fichier journal est un format texte ASCII personnalisable. Les préfixes de champ dans le fichier sont définis comme suit :

Préfixe Description
s Actions du serveur.
c Actions clientes.
Sc Actions de serveur à client.
cs Actions de client à serveur.

 

L’application peut sélectionner un ou plusieurs des champs de fichier journal étendu W3C. Toutefois, tous les champs ne contiennent pas d’informations. Pour les champs sélectionnés mais pour lesquels il n’existe aucune information, un trait d’union (-) s’affiche en tant qu’espace réservé. Si un champ contient un caractère non imprimable, l’API serveur HTTP le remplace par un signe plus (+) pour conserver le format du fichier journal. Cela se produit généralement avec des attaques de virus, lorsque, par exemple, un utilisateur malveillant envoie des retours chariot et des flux de ligne qui, s’ils ne sont pas remplacés par le signe plus (+), interrompent le format du fichier journal. Les champs sont séparés par des espaces.

Si un champ est activé par le groupe d’URL ou la session serveur, mais qu’il n’est pas sélectionné pour la demande, il apparaît dans le fichier journal avec un trait d’union (-) comme espace réservé.

Les fichiers journaux sont créés lorsque la première requête arrive sur le groupe d’URL ou la session serveur. Ils ne sont pas créés lors de la configuration de la journalisation. L’exemple suivant montre la première entrée de fichier journal pour un fichier journal W3C avec les champs Adresse IP cliente, Nom d’utilisateur, Adresse IP du serveur, Port du serveur, Méthode, Uri Stem, Requête URI, État et Agent utilisateur activés :

#Software: Microsoft HTTP Server API 2.0  
#Version: 1.0   // the log file version as it's described by "https://www.w3.org/TR/WD-logfile".
#Date: 2002-05-02 17:42:15  // when the first log file entry was recorded, which is when the entire log file was created.
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent)
2002-05-02 17:42:15 172.22.255.255 - 172.30.255.255 80 GET /images/picture.jpg - 200 Mozilla/4.0+(compatible;MSIE+5.5;+Windows+2000+Server)

Le champ de temps nécessaire est initialisé lorsque l’API du serveur HTTP reçoit le premier octet, avant l’analyse de la requête. L’horodatage nécessaire est arrêté lorsque la dernière exécution de l’envoi se produit. Le temps pris ne reflète pas le temps sur le réseau. La première requête sur le site affiche un délai légèrement plus long que d’autres requêtes similaires, car l’API du serveur HTTP ouvre le fichier journal avec la première requête.