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 sono 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 |
---|---|---|---|---|
Data | data | Data in cui si è verificata l'attività. | API server HTTP generata. | HTTP_LOG_FIELD_DATE |
Ora | time | Ora, in formato 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. | ServerName | 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 è 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. | UserName | HTTP_LOG_FIELD_USER_NAME |
Indirizzo IP client | c-ip | Indirizzo IP del client che ha eseguito la richiesta. | ClientIp | HTTP_LOG_FIELD_CLIENT_IP |
Versione del 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 usato dal client. | UserAgent | HTTP_LOG_FIELD_USER_AGENT |
Cookie | cs(Cookie) | Contenuto del cookie inviato o ricevuto, se presente. | Cookie | HTTP_LOG_FIELD_COOKIE |
Referrer | cs(Referrer) | Sito visitato dall'utente. Questo sito fornisce un collegamento al sito corrente. | Referrer | HTTP_LOG_FIELD_REFERRER |
Host | cs-host | Nome dell'intestazione host, se presente. | Host | 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 | Durata dell'azione, 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. |
M.b | 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 nel gruppo di URL o nella sessione del server, non vengono creati quando viene configurata la registrazione. L'esempio seguente mostra la prima voce del file di log per un file di log W3C con i campi IP client, Username, Server IP, Server PORT, Method, URI Stem, URI Query, Status e User Agent 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 time-taken viene inizializzato quando l'API server HTTP riceve il primo byte, prima che la richiesta venga analizzata. Il timestamp impiegato viene arrestato quando si verifica l'ultimo completamento dell'invio. Il tempo impiegato non riflette il tempo nella rete. La prima richiesta al sito mostra un tempo leggermente più lungo rispetto ad altre richieste simili perché l'API del server HTTP apre il file di log con la prima richiesta.