Registrazione W3C
La registrazione estesa W3C è un tipo di registrazione lato server che può essere abilitata nella sessione del server o nel gruppo di URL. Quando la registrazione W3C è abilitata in un gruppo di URL, la registrazione viene eseguita solo sulle richieste indirizzate al gruppo di URL. Viene creato un file di log separato per ogni gruppo di URL configurato per abilitare la registrazione W3C.
Quando la registrazione W3C è abilitata nella sessione del server, funziona come forma centralizzata di registrazione per tutti i gruppi di URL nella sessione del server. Viene mantenuto un singolo file di log per tutti i gruppi di URL nella sessione del server.
Nella tabella seguente sono elencati i campi che possono essere registrati dall'API server HTTP. La tabella contiene un subset delle costanti HTTP_LOG_FIELD. Alcuni dei campi elencati di seguito vengono generati automaticamente dall'API server HTTP internamente e pertanto non sono contenuti nella struttura HTTP_LOG_FIELDS_DATA. La colonna "Appare come" contiene il testo visualizzato nel file di log. I dati nella tabella sono nell'ordine di occorrenza nel record del file di log.
I campi non contrassegnati come "API server HTTP generata" devono essere passati all'interno della struttura HTTP_LOG_FIELDS_DATA dall'applicazione. L'applicazione potrebbe generare tali campi dalla struttura HTTP_REQUEST passata.
Campo | Viene visualizzato come | Descrizione | membro HTTP_LOG_FIELDS_DATA | costanti HTTP_LOG_FIELDS |
---|---|---|---|---|
Dattero | dattero | Data in cui si è verificata l'attività. | API server HTTP generata. | HTTP_LOG_FIELD_DATE |
Ore | Ore | Ora, in ora UTC (Coordinated Universal Time), in cui si è verificata l'attività. | API server HTTP generata. | HTTP_LOG_FIELD_TIME |
Nome del servizio e numero di istanza | s-sitename | Nome del servizio Internet e numero di istanza in esecuzione nel client. | ServiceName | HTTP_LOG_FIELD_SITE_NAME |
Nome server | s-computername | Nome del server in cui è stata generata la voce del file di log. | NomeServer | HTTP_LOG_FIELD_COMPUTER_NAME |
Indirizzo IP del server | s-ip | Indirizzo IP del server in cui è stata generata la voce del file di log. | ServerIp | HTTP_LOG_FIELD_SERVER_IP |
Metodo | cs-method | Verbo richiesto, ad esempio, un metodo GET. | Metodo | HTTP_LOG_FIELD_METHOD |
Stelo URI | cs-uri-stem | Destinazione del verbo, ad esempio, Default.htm. | UriStem | HTTP_LOG_FIELD_URI_STEM |
URI Query | cs-uri-query | La query, se presente, che il client stava tentando di eseguire. Una query URI (Universal Resource Identifier) è necessaria solo per le pagine dinamiche. | UriQuery | HTTP_LOG_FIELD_URI_QUERY |
Porta server | s-port | Numero di porta del server configurato per il servizio. | ServerPort | HTTP_LOG_FIELD_SERVER_PORT |
Nome utente | cs-username | Nome dell'utente autenticato che ha eseguito l'accesso al server. Gli utenti anonimi sono indicati da un trattino. | Nome utente | HTTP_LOG_FIELD_USER_NAME |
Indirizzo IP client | c-ip | Indirizzo IP del client che ha effettuato la richiesta. | ClientIp | HTTP_LOG_FIELD_CLIENT_IP |
Versione protocollo | cs-version | Versione del protocollo HTTP usata dal client. | API server HTTP generata. | HTTP_LOG_FIELD_VERSION |
Agente utente | cs(User-Agent) | Tipo di browser utilizzato dal client. | UserAgent | HTTP_LOG_FIELD_USER_AGENT |
Biscotto | cs(Cookie) | Contenuto del cookie inviato o ricevuto, se presente. | Biscotto | HTTP_LOG_FIELD_COOKIE |
Referrer | cs(Referrer) | Sito visitato dall'utente. Questo sito ha fornito un collegamento al sito corrente. | Referrer | HTTP_LOG_FIELD_REFERRER |
Ospite | cs-host | Nome dell'intestazione host, se presente. | Ospite | HTTP_LOG_FIELD_HOST |
Stato HTTP | sc-status | Codice di stato HTTP. | ProtocolStatus | HTTP_LOG_FIELD_STATUS |
Stato secondario protocollo | sc-substatus | Codice di errore dello stato secondario. | SubStatus | HTTP_LOG_FIELD_SUB_STATUS |
Stato Win32 | sc-win32-status | Codice di stato di Windows. | Win32Status | HTTP_LOG_FIELD_WIN32_STATUS |
Byte inviati | sc-bytes | Numero di byte inviati dal server. | API server HTTP generata. | HTTP_LOG_FIELD_BYTES_SENT |
Byte ricevuti | cs-bytes | Numero di byte ricevuti ed elaborati dal server. | API server HTTP generata. | HTTP_LOG_FIELD_BYTES_RECV |
Tempo impiegato | tempo impiegato | Periodo di tempo impiegato dall'azione, espresso in millisecondi. | API server HTTP generata. | HTTP_LOG_FIELD_TIME_TAKEN |
ID flusso | streamid | ID flusso. | API server HTTP generata. | HTTP_LOG_FIELD_STREAM_ID |
Il file di log è un formato personalizzabile basato su testo ASCII. I prefissi di campo nel file sono definiti come segue:
Prefisso | Descrizione |
---|---|
s | Azioni del server. |
c | Azioni client. |
Sc | Azioni da server a client. |
Cs | Azioni da client a server. |
L'applicazione può selezionare uno o più campi del file di log esteso W3C, ma non tutti i campi conterranno informazioni. Per i campi selezionati ma per i quali non sono presenti informazioni, un trattino (-) viene visualizzato come segnaposto. Se un campo contiene un carattere non stampabile, l'API server HTTP lo sostituisce con un segno più (+) per mantenere il formato del file di log. Ciò si verifica in genere con attacchi di virus, quando, ad esempio, un utente malintenzionato invia ritorni a capo e feed di riga che, se non sostituiti con il segno più (+), interrompe il formato del file di log. I campi sono separati da spazi.
Se un campo è abilitato dal gruppo di URL o dalla sessione del server, ma non selezionato per la richiesta, viene visualizzato nel file di log con un trattino (-) come segnaposto.
I file di log vengono creati al momento dell'arrivo della prima richiesta nella sessione del gruppo di URL o del server, non vengono creati quando viene configurata la registrazione. L'esempio seguente mostra la prima voce di file di log per un file di log W3C con i campi Ip client, Nome utente, IP server, Porta server, Metodo, Stem URI, Query URI, Stato e Agente utente abilitati:
#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)
Il campo impiegato viene inizializzato quando l'API del server HTTP riceve il primo byte prima dell'analisi della richiesta. Il timestamp impiegato viene arrestato quando si verifica l'ultimo completamento dell'invio. Il tempo impiegato non riflette il tempo in rete. La prima richiesta al sito mostra un tempo leggermente più lungo di altre richieste simili perché l'API server HTTP apre il file di log con la prima richiesta.