W3C-Protokollierung
Die erweiterte W3C-Protokollierung ist der Typ der serverseitigen Protokollierung, die in der Serversitzung oder URL-Gruppe aktiviert werden kann. Wenn die W3C-Protokollierung für eine URL-Gruppe aktiviert ist, wird die Protokollierung nur für Anforderungen ausgeführt, die an die URL-Gruppe weitergeleitet werden. Für jede URL-Gruppe, die für die Aktivierung der W3C-Protokollierung konfiguriert ist, wird eine separate Protokolldatei erstellt.
Wenn die W3C-Protokollierung in der Serversitzung aktiviert ist, fungiert sie als zentrale Form der Protokollierung für alle URL-Gruppen unter der Serversitzung. Eine einzelne Protokolldatei wird für alle URL-Gruppen in der Serversitzung verwaltet.
In der folgenden Tabelle sind die Felder aufgeführt, die von der HTTP-Server-API protokolliert werden können. Die Tabelle enthält eine Teilmenge der HTTP_LOG_FIELD Konstanten. Einige der unten aufgeführten Felder werden intern von der HTTP-Server-API generiert und daher nicht in der HTTP_LOG_FIELDS_DATA Struktur enthalten. Die Spalte "Erscheint als" enthält den Text, der in der Protokolldatei angezeigt wird. Die Daten in der Tabelle befinden sich in der Reihenfolge des Vorkommens im Protokolldateidatensatz.
Felder, die nicht als "HTTP Server-API generiert" gekennzeichnet sind, müssen innerhalb HTTP_LOG_FIELDS_DATA Struktur nach Anwendung übergeben werden. Die Anwendung kann diese Felder aus der HTTP_REQUEST Struktur generieren, die an sie übergeben wird.
Feld | Wird angezeigt als | Beschreibung | HTTP_LOG_FIELDS_DATA Mitglied | HTTP_LOG_FIELDS Konstanten |
---|---|---|---|---|
Datum | Datum | Das Datum, an dem die Aktivität aufgetreten ist. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_DATE |
Zeit | Zeit | Die Zeit, in koordinierter Weltzeit (UTC), an der die Aktivität stattgefunden hat. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_TIME |
Dienstname und Instanznummer | s-sitename | Der Name und die Instanznummer des Internetdiensts, die auf dem Client ausgeführt wurde. | ServiceName | HTTP_LOG_FIELD_SITE_NAME |
Servername | s-computername | Der Name des Servers, auf dem der Protokolldateieintrag generiert wurde. | ServerName | HTTP_LOG_FIELD_COMPUTER_NAME |
Server-IP-Adresse | s-ip | Die IP-Adresse des Servers, auf dem der Protokolldateieintrag generiert wurde. | ServerIp | HTTP_LOG_FIELD_SERVER_IP |
Methode | cs-method | Das angeforderte Verb, z. B. eine GET-Methode. | Methode | HTTP_LOG_FIELD_METHOD |
URI-Stamm | cs-uri-stem | Das Ziel des Verbs, z. B. Default.htm. | UriStem | HTTP_LOG_FIELD_URI_STEM |
URI-Abfrage | cs-uri-query | Die Abfrage, falls vorhanden, die der Client auszuführen versucht hat. Eine URI-Abfrage (Universal Resource Identifier) ist nur für dynamische Seiten erforderlich. | UriQuery | HTTP_LOG_FIELD_URI_QUERY |
Serverport | s-port | Die Serverportnummer, die für den Dienst konfiguriert ist. | ServerPort | HTTP_LOG_FIELD_SERVER_PORT |
Benutzername | cs-username | Der Name des authentifizierten Benutzers, der auf den Server zugegriffen hat. Anonyme Benutzer werden durch einen Bindestrich gekennzeichnet. | Nutzername | HTTP_LOG_FIELD_USER_NAME |
Client-IP-Adresse | c-ip | Die IP-Adresse des Clients, der die Anforderung gestellt hat. | ClientIp | HTTP_LOG_FIELD_CLIENT_IP |
Protokollversion | cs-version | Die HTTP-Protokollversion, die der Client verwendet hat. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_VERSION |
Benutzer-Agent | cs(User-Agent) | Der Browsertyp, den der Client verwendet hat. | UserAgent | HTTP_LOG_FIELD_USER_AGENT |
Keks | cs(Cookie) | Der Inhalt des gesendeten oder empfangenen Cookies, falls vorhanden. | Keks | HTTP_LOG_FIELD_COOKIE |
Referrer | cs(Referrer) | Die Website, die der Benutzer zuletzt besucht hat. Diese Website hat einen Link zur aktuellen Website bereitgestellt. | Referrer | HTTP_LOG_FIELD_REFERRER |
Gastgeber | cs-host | Der Hostheadername( falls vorhanden). | Gastgeber | HTTP_LOG_FIELD_HOST |
HTTP-Status | sc-status | Der HTTP-Statuscode. | ProtocolStatus | HTTP_LOG_FIELD_STATUS |
Protokollunterstatus | sc-substatus | Der Fehlercode für den Unterstatus. | SubStatus | HTTP_LOG_FIELD_SUB_STATUS |
Win32-Status | sc-win32-status | Der Windows-Statuscode. | Win32Status | HTTP_LOG_FIELD_WIN32_STATUS |
Gesendete Bytes | sc-bytes | Die Anzahl der vom Server gesendeten Bytes. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_BYTES_SENT |
Empfangene Bytes | cs-bytes | Die Anzahl der vom Server empfangenen und verarbeiteten Bytes. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_BYTES_RECV |
Benötigte Zeit | Zeitaufwand | Die Zeitspanne, die die Aktion in Millisekunden ausgeführt hat. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_TIME_TAKEN |
Stream-ID | streamid | Die Stream-ID. | HTTP-Server-API generiert. | HTTP_LOG_FIELD_STREAM_ID |
Die Protokolldatei ist ein anpassbares ASCII-textbasiertes Format. Die Feldpräfixe in der Datei werden wie folgt definiert:
Präfix | Beschreibung |
---|---|
s | Serveraktionen. |
c | Clientaktionen. |
sc | Server-zu-Client-Aktionen. |
Cs | Client-zu-Server-Aktionen. |
Die Anwendung kann ein oder mehrere der Erweiterten W3C-Protokolldateifelder auswählen, jedoch enthalten nicht alle Felder Informationen. Bei Feldern, die ausgewählt sind, aber keine Informationen vorhanden sind, wird ein Bindestrich (-) als Platzhalter angezeigt. Wenn ein Feld ein nicht druckbares Zeichen enthält, ersetzt die HTTP-Server-API es durch ein Pluszeichen (+), um das Protokolldateiformat beizubehalten. Dies tritt in der Regel bei Virenangriffen auf, wenn beispielsweise ein böswilliger Benutzer Wagenrückgänge und Zeilenfeeds sendet, die, wenn nicht durch das Pluszeichen (+) ersetzt, das Protokolldateiformat unterbrechen würde. Felder werden durch Leerzeichen getrennt.
Wenn ein Feld von der URL-Gruppe oder Serversitzung aktiviert, aber nicht für die Anforderung ausgewählt ist, wird es in der Protokolldatei mit einem Bindestrich (-) als Platzhalter angezeigt.
Protokolldateien werden erstellt, wenn die erste Anforderung in der URL-Gruppe oder Serversitzung eingeht, sie werden nicht erstellt, wenn die Protokollierung konfiguriert ist. Das folgende Beispiel zeigt den ersten Protokolldateieintrag für eine W3C-Protokolldatei mit aktivierten Feldern "Client-IP", "Benutzername", "Server-IP", "Serverport", "Methode", "URI-Stamm", "URI-Abfrage", "Status" und "Benutzer-Agent":
#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)
Das zeitgesteuerte Feld wird initialisiert, wenn die HTTP-Server-API das erste Byte empfängt, bevor die Anforderung analysiert wird. Der zeitaufwendige Zeitstempel wird beendet, wenn der letzte Sendeabschluss erfolgt. Zeitaufwand spiegelt keine Zeit im gesamten Netzwerk wider. Die erste Anforderung an die Website zeigt eine etwas längere Zeit als andere ähnliche Anforderungen, da die HTTP-Server-API die Protokolldatei mit der ersten Anforderung öffnet.